export FLASK_APP=flask_app
, 然后执行 flask run
,但遇到了以下错误:
然而,该文件确实存在,且位于当前工作目录中。即使使用完整路径也不起作用。错误: 提供的文件/路径(flask_app)似乎不存在。请验证路径是否正确,并确保扩展名为.py。如果应用程序不在PYTHONPATH上,请确保扩展名为.py。
export FLASK_APP=flask_app
, 然后执行 flask run
,但遇到了以下错误:
然而,该文件确实存在,且位于当前工作目录中。即使使用完整路径也不起作用。错误: 提供的文件/路径(flask_app)似乎不存在。请验证路径是否正确,并确保扩展名为.py。如果应用程序不在PYTHONPATH上,请确保扩展名为.py。
当你遇到一个ImportError
错误没有传递到终端时,就会出现这种情况。检查你所有的文件中是否有无效的导入语句,修复它们,错误就会消失。
编辑于2017-04-02: @Michael指出我现在放在“旧消息第2部分”标签下的引用是不正确的。我不知道这个错误是怎么出现的,但我在Flask Github上找到了一个非常近期的帖子,在那里他们引用了修复问题的提交,该提交应该已经在2016年12月30日解决了该问题。可能在那个时间,我确实运行的是旧版的Flask。
旧消息第2部分: 此问题在Flask Github上被讨论,但我不确定它是否已经被修复以及何时修复,因为即使在合并了该页面描述的修复(2016年8月12日)后,我今天仍然遇到了错误。
当在环境变量下运行时,flask版本0.x会出现错误信息,请将您的flask升级到1.x版本。
pip install -U flask
在我的代码中缺少import
语句时会出现这个错误。实际导入错误未显示,我认为这是一个bug,正如@PDiracDelta的答案所描述的一样。(更新:似乎在Flask 0.13中将被修复。)
对我有效的解决方法是在命令行中指定应用程序。根据你引用的错误信息,你的应用程序名为'flask_app',只需键入以下内容:
python flask_app.py
这段代码实际上并不会运行应用程序(除非它检查了if __name__ == '__main__'
或其他东西),但它会显示导入错误。
flask run
,就会出现这个错误。相反,在设置了export FLASK_APP
和export FLASK_ENV
变量后,请使用python -m flask run
。当我创建应用程序工厂时,按照Flask教程进行操作时遇到了这个问题。说明没有指定在flask run
之前加上python -m
。python2
与 python3
的问题,pip2 install Flask
与 pip3 install Flask
的问题,(venv) virtual environment
和 local environment
的问题。python3 -m venv venv
. venv/bin/activate
pip3 install Flask
export FLASK_APP=flask_app
flask run
python -m flask run
export FLASK_APP=__init__.py
export FLASK_APP=myapp
确保您已经完成了 [pip install --editable . ]。 '.' 代表您的应用程序安装的目录位置,例如(flask_app)。
运行 python 命令。 它将打开命令行 python 解释器。
尝试导入 flask 应用程序。 如果出现错误,您将获得详细的错误信息。 尝试修复该错误。
我也遇到了同样的问题,并按照上述步骤发现代码运行出错。解释器显示编译错误。
在 flask 教程的第 5 步 http://flask.pocoo.org/docs/0.12/tutorial/dbinit/ 中遇到了同样的问题。
我所做的是
1)在虚拟环境内,通过 pip uninstall flaskr
卸载包
2)退出并重新进入虚拟环境,通过 deactivate
和 source bin/activate
命令
3)通过 pip install --editable .
重新安装 flaskr 包
4)通过 export FLASK_APP=flaskr
重设环境变量
5)现在执行 flask run
并在浏览器中输入 localhost:5000,会生成 404(未找到视图)错误,而不是 500(未找到文件)错误。
或者执行 flask initdb
,这将触发 init_db()
函数。
import
语句时,我都会看到这个误导性的错误。你链接的Github票据似乎是针对不同的错误,你是想链接到其他地方吗? - Michael Scheperpython manage.py
可能会有助于查看导入错误。 - beyondfloatingpoint