Flask "Error: The file/path provided does not appear to exist" although the file does exist

Flask "Error: The file/path provided does not appear to exist" although the file does exist

我使用 export FLASK_APP=flask_app 然后执行 flask run 但我收到错误:

Error: The file/path provided (flask_app) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py

但是,文件确实存在,甚至在当前工作目录中。使用文件的完整路径也不起作用。

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

编辑 2017-04-02: @Michael 指出我现在放在标签 "OLD MESSAGE PART 2" 下的参考是不正确的。我不知道这个错误是怎么来的,但我在 Flask Github where they reference the commit 上发现了一个最近的 post 应该在 2016 年 12 月 30 日解决了这个问题。可能那个时候我是确实 运行 一个旧的烧瓶版本。

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

请按照以下步骤操作:

  1. 确保您已经完成 [pip install --editable 。 ].在哪里 '。'表示您的应用程序安装目录的位置。例如(flask_app)

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

  3. 尝试导入flask应用 如果它有错误,你会得到详细的错误。 尝试修复该错误。

我运行同样的问题,按照上面的步骤,发现运行代码有错误。解释器显示编译错误。

当我在代码中某处缺少 import 语句时,我看到了这个错误。正如@PDiracDelta 的 中所述,在我看来,未显示实际导入错误的事实是一个错误。 (更新:似乎会在 Flask 0.13 中修复。)

对我有用的解决方法是在命令行指定应用程序。从您引用的错误消息来看,您的应用似乎名为 'flask_app',因此只需键入:

python flask_app.py

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

werkzeug 版本不适用于 Flask。为了解决这个问题,你需要升级 werkzeug,使用: $pip install werkzeug --upgrade

在 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() 预期的功能

当 运行 环境变量时,错误消息来自 flask 版本 0.x,只需将你的 flask 升级到版本 1.x。

pip install -U flask

如果您在命令行中输入 flask run,就会出现此消息。在设置 export FLASK_APPexport FLASK_ENV 变量后改为使用 python -m flask run。我 运行 在创建应用程序工厂时遵循 Flask 教程时遇到了这个问题。该指令未指定在 flask run 前加上 python -m.

和y2knoproblem类似,我是按照flask官方教程,所以使用了应用工厂和venv虚拟环境。我能够使用

python -m flask run

但这导致了我的 IDE 服务于本地主机的问题,而不是像我 运行 'flask run' 在 application.py 上时那样的外部可访问地址。

我能够通过指定

来完成这项工作
export FLASK_APP=__init__.py

而不是

export FLASK_APP=myapp

这可能有很多原因。

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