尽管文件存在,Flask仍提示“错误:提供的文件/路径似乎不存在”

21
我使用export FLASK_APP=flask_app, 然后执行 flask run,但遇到了以下错误:

错误: 提供的文件/路径(flask_app)似乎不存在。请验证路径是否正确,并确保扩展名为.py。如果应用程序不在PYTHONPATH上,请确保扩展名为.py。

然而,该文件确实存在,且位于当前工作目录中。即使使用完整路径也不起作用。
9个回答

30

当你遇到一个ImportError错误没有传递到终端时,就会出现这种情况。检查你所有的文件中是否有无效的导入语句,修复它们,错误就会消失。

编辑于2017-04-02: @Michael指出我现在放在“旧消息第2部分”标签下的引用是不正确的。我不知道这个错误是怎么出现的,但我在Flask Github上找到了一个非常近期的帖子,在那里他们引用了修复问题的提交,该提交应该已经在2016年12月30日解决了该问题。可能在那个时间,我确实运行的是旧版的Flask。

旧消息第2部分: 此问题在Flask Github上被讨论,但我不确定它是否已经被修复以及何时修复,因为即使在合并了该页面描述的修复(2016年8月12日)后,我今天仍然遇到了错误。


5
信息不太合适,因为它令人困惑,Flask 应该负责处理这个信息。谢谢 @PDiracDelta - Tamaghna Banerjee
1
我在Flask 0.12中仍然遇到这个问题,这是pip找到的最新版本。每当我缺少一个import语句时,我都会看到这个误导性的错误。你链接的Github票据似乎是针对不同的错误,你是想链接到其他地方吗? - Michael Scheper
1
感谢 @Michael 注意到我的错误!已更新答案。 - PDiracDelta
啊,是的,那个链接更有意义,看起来问题已经在主分支上得到了修复。希望Flask 0.13很快就会发布。谢谢! - Michael Scheper
1
运行 python manage.py 可能会有助于查看导入错误。 - beyondfloatingpoint

23

当在环境变量下运行时,flask版本0.x会出现错误信息,请将您的flask升级到1.x版本。

pip install -U flask

8

在我的代码中缺少import语句时会出现这个错误。实际导入错误未显示,我认为这是一个bug,正如@PDiracDelta的答案所描述的一样。(更新:似乎在Flask 0.13中将被修复。)

对我有效的解决方法是在命令行中指定应用程序。根据你引用的错误信息,你的应用程序名为'flask_app',只需键入以下内容:

python flask_app.py

这段代码实际上并不会运行应用程序(除非它检查了if __name__ == '__main__'或其他东西),但它会显示导入错误。


7
如果你在命令行中执行flask run,就会出现这个错误。相反,在设置了export FLASK_APPexport FLASK_ENV变量后,请使用python -m flask run。当我创建应用程序工厂时,按照Flask教程进行操作时遇到了这个问题。说明没有指定在flask run之前加上python -m

5
这可能有多种原因。
其中之一是 python2python3 的问题,
还有 pip2 install Flaskpip3 install Flask 的问题,
以及 (venv) virtual environmentlocal environment 的问题。
在我的情况下,需要执行以下步骤来解决问题:
  1. python3 -m venv venv

  2. . venv/bin/activate

  3. pip3 install Flask

  4. export FLASK_APP=flask_app

  5. flask run


3
与y2knoproblem类似,我正在遵循Flask官方教程,使用应用程序工厂和venv虚拟环境。我能够使用。
python -m flask run

但是这导致我的IDE只能在本地主机提供服务,而无法像我在application.py上运行'flask run'时那样对外公开访问。为了解决这个问题,我可以通过指定地址来实现外部访问。
export FLASK_APP=__init__.py

替换为
export FLASK_APP=myapp

1
请按照以下步骤操作:
  1. 确保您已经完成了 [pip install --editable . ]。 '.' 代表您的应用程序安装的目录位置,例如(flask_app)。

  2. 运行 python 命令。 它将打开命令行 python 解释器。

  3. 尝试导入 flask 应用程序。 如果出现错误,您将获得详细的错误信息。 尝试修复该错误。

我也遇到了同样的问题,并按照上述步骤发现代码运行出错。解释器显示编译错误。


0
werkzeug版本不适用于flask。为解决此问题,您需要升级werkzeug,使用以下命令: ``` $pip install werkzeug --upgrade ```

0

在 flask 教程的第 5 步 http://flask.pocoo.org/docs/0.12/tutorial/dbinit/ 中遇到了同样的问题。

我所做的是

1)在虚拟环境内,通过 pip uninstall flaskr 卸载包

2)退出并重新进入虚拟环境,通过 deactivatesource bin/activate 命令

3)通过 pip install --editable . 重新安装 flaskr 包

4)通过 export FLASK_APP=flaskr 重设环境变量

5)现在执行 flask run 并在浏览器中输入 localhost:5000,会生成 404(未找到视图)错误,而不是 500(未找到文件)错误。

或者执行 flask initdb ,这将触发 init_db() 函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接