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