python flask在''中找不到'__main__'模块
大家好,我只是在学习烧瓶。我用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 ''
-
您说过,仅当您从交互式shell运行代码时,才会出现此问题。它是由
werkzeug
(wsgi服务器flask
所基于的)功能引起的。werkzeug
如果更改了项目文件,则在调试模式下将自动重新启动服务器。每次检测到更改时,都会werkzeug
重新启动最初启动的 文件
。甚至第一次启动都是通过 文件名 完成的!但是在交互式外壳中根本没有文件,并且
werkzeug
认为您的文件被称为""
(空字符串)。然后,它尝试运行该文件。由于某种原因,它也认为""
指代包装。但是由于该软件包不存在__main__
,因此它也不能具有模块,因此会出现错误。您可以通过
""
直接运行来模拟该错误python "" # prints: can't find '__main__' module in ''
您可以通过将debug设置为
False
(也是默认值)来尝试禁用重新加载器:app.run(debug=False, ...)
然后,它也应该在交互式会话中运行。但是,为什么要这么做呢?只需放入一个文件并运行它。