python flask无法找到' __ main __'模块在''

时间:2016-06-28 22:25:39

标签: python python-3.x flask

大家好我只是在学习烧瓶。我用pip来安装它。然后当我运行这个基本代码时,我收到一个错误。基本上我看到它的工作然后突然退出,出现以下错误。这可能看起来是一些环境问题,但我不确定。这件事有点奇怪,但是现在还不行。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'


if __name__ == '__main__':
    app.run(debug=True, port=8000, host='0.0.0.0') 

 * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
 * Restarting with stat
/Library/Frameworks/Python.framework/Versions/3.4/bin/python3: can't find '__main__' module in ''

1 个答案:

答案 0 :(得分:6)

你说过,只有从交互式shell运行代码时才会出现问题。它是由werkzeug中的一项功能引起的(wsgi服务器flask基于此功能)。

在调试模式下,如果更改了项目文件,werkzeug将自动重启服务器。每次检测到更改werkzeug时,都会重新启动最初启动的文件。即使第一次开始也是通过文件名

完成的

但是在交互式shell中根本没有文件,而werkzeug认为你的文件被称为""(空字符串)。然后它尝试运行该文件。出于某种原因,它还认为""指的是一个包。但由于该包不存在,它也不能有__main__模块,因此错误。

您可以直接运行""来模拟该错误

python ""
# prints: can't find '__main__' module in ''

您可以尝试通过将调试设置为False来禁用重新加载器(这也是默认设置):

app.run(debug=False, ...)

然后它也应该在交互式会话中运行。但你为什么要那样做?只需放入一个文件然后运行即可。