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 日)。
请按照以下步骤操作:
确保您已经完成 [pip install --editable 。 ].在哪里 '。'表示您的应用程序安装目录的位置。例如(flask_app)
运行 python
它将打开命令行 python 解释器
尝试导入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_APP
和 export 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
这可能有很多原因。
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
我使用 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 日)。
请按照以下步骤操作:
确保您已经完成 [pip install --editable 。 ].在哪里 '。'表示您的应用程序安装目录的位置。例如(flask_app)
运行 python 它将打开命令行 python 解释器
尝试导入flask应用 如果它有错误,你会得到详细的错误。 尝试修复该错误。
我运行同样的问题,按照上面的步骤,发现运行代码有错误。解释器显示编译错误。
当我在代码中某处缺少 import
语句时,我看到了这个错误。正如@PDiracDelta 的
对我有用的解决方法是在命令行指定应用程序。从您引用的错误消息来看,您的应用似乎名为 '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 .
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_APP
和 export 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
这可能有很多原因。
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