我使用export FLASK_APP=flask_app
然后做flask run
但我收到错误:
错误:提供的文件/路径(flask_app)似乎不存在。请验证路径是否正确。如果app不在PYTHONPATH上,请确保扩展名为.py
但是,该文件确实存在,甚至在当前工作目录中。使用文件的完整路径也不起作用。
当你有一个没有传播到你的终端的ImportError
时会出现这种情况。检查所有文件是否有无效的导入语句,修复它们,错误应该消失。
编辑2017-04-02:@Michael指出我现在放在标签“OLD MESSAGE PART 2”下的引用是不正确的。我不知道这个错误是怎么回事,但是我在Flask Github发现了一篇最近的帖子,他们引用了the commit,它应该在2016年12月30日解决这个问题。可能那时候我确实在运行一个旧版本烧瓶版。
老消息第2部分:这个问题在Flask Github上讨论过,虽然我不确定何时甚至是否已经实际修复,因为我今天仍然遇到错误,即使我在合并修改后的Flask之后下载了Flask页(2016年8月12日)。
当使用环境变量运行时,错误消息来自于烧瓶版本0.x,只需将烧瓶升级到版本1.x.
pip install -U flask
当我在代码中某处遗漏import
语句时,我看到了这个错误。在我看来,没有显示实际导入错误的事实是一个错误,如@ PDiracDelta的answer中所述。 (更新:似乎它将在Flask 0.13中修复。)
适用于我的解决方法是在命令行指定应用程序。从您引用的错误消息来看,您的应用程序看起来像'flask_app',所以只需输入以下内容:
python flask_app.py
这实际上不会运行应用程序(除非它检查if __name__ == '__main__'
或其他东西),但它会显示导入错误。
如果在命令行上发出flask run
,则会出现此消息。而是在设置python -m flask run
和export FLASK_APP
变量后使用export FLASK_ENV
。在创建应用程序工厂时,我在遵循Flask教程时遇到了这个问题。该指令未指定flask run
与python -m
前言。
请按以下步骤操作:
我遇到了同样的问题,并按照上面的步骤,发现运行代码时出错。解释器显示编译错误。
werkzeug版本不适合烧瓶。要解决此问题,您需要升级werkzeug,使用:
$pip install werkzeug --upgrade
同样的问题在烧瓶教程的第5步:http://flask.pocoo.org/docs/0.12/tutorial/dbinit/。
我做的是
1)在虚拟环境中,通过pip uninstall flaskr
卸载软件包
2)停用虚拟环境,然后通过deactivate
然后source bin/activate
重新激活它
3)通过pip install --editable .
重新安装烧瓶包装
4)通过export FLASK_APP=flaskr
重置env变量
5)现在做flask run
并在浏览器中点击localhost:5000生成404(没有视图,如预期)错误而不是500(找不到文件)错误。
或做flask initdb
触发init_db()
功能按预期
与y2knoproblem类似,我正在关注烧瓶官方教程,因此使用应用工厂和venv虚拟环境。我能够使用
python -m flask run
但这导致我的IDE服务于localhost而不是外部可访问的地址,就像我在application.py上运行'flask run'时那样。
我能够通过指定来完成这项工作
export FLASK_APP=__init__.py
代替
export FLASK_APP=myapp
这可能有很多原因。
python2
vs python3
issue,
pip2 install Flask
vs pip3 install Flask
issue,
和(venv) virtual environment
vs local environment
问题。
在我的情况下,必须做以下事情来解决问题:
python3 -m venv venv
. venv/bin/activate
pip3 install Flask
export FLASK_APP=flask_app
flask run