烧瓶说 "did not provide the FLASK_APP environment variable"
Flask says "did not provide the FLASK_APP environment variable"
我正在尝试 运行 带有 flask run
的 Flask 应用程序,但无论如何,我收到此错误:
Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.
我在我的项目中使用 virtualenv,我 运行 在端口 80 上运行应用程序,所以我 运行 作为超级用户执行命令。最终,我只需要使用 Flask-Migrate 的 docs 中描述的 flask db init
命令,但 flask
需要能够找到应用程序来执行此操作。这是我尝试过的方法,但没有成功:
导出 FLASK_APP
环境变量,确保它在我的 bash 配置文件中,然后激活 virtualenv
$ export FLASK_APP=run.py
$ printenv FLASK_APP
run.py
$ . env/bin/activate
(env) $ sudo flask run
Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.
激活virtualenv,然后导出FLASK_APP
$ . env/bin/activate
(env) $ export FLASK_APP=run.py
(env) $ printenv FLASK_APP
run.py
(env) sudo flask run
Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.
以上两个带全路径,/Users/me/code/project/run.py
$ printenv FLASK_APP
/Users/me/code/project/run.py
项目结构
myproject/
├──app/
| ├── __init__.py
| ├── models.py
| ├── templates/
| └── views.py
├── tests/
├── run.py
├── requirements.txt
└── config.py
到目前为止没有任何效果,每种情况下的错误消息都是相同的。我该怎么做才能修复此错误?
假设您在初始化文件中调用 app=App(__name__)
。试试这个,尽管从技术上讲它也应该与 run.py 一起使用。
export FLASK_APP=app/__init__.py; flask run
稍后再尝试执行 echo $FLASK_APP
以查看值 实际上 是否存储在 flask 直接访问的环境变量中,而不仅仅是 bash个人资料。
当我从 sudo flask run
中删除 sudo
时,Flask 找到 $FLASK_APP
。但是,我收到错误消息 socket.error: [Errno 13] Permission denied
。我看不出解决这个问题的方法,因为当我作为超级用户 运行 时,Flask 找不到 $FLASK_APP
。好像是循环逻辑。
我已经通过将端口从 80 更改为 5000 并将 sudo
改为 flask run
来 运行 Flask。这很好,不过我必须找到一种方法 运行 生产环境中端口 80 上的应用程序。
在删除并重新创建我的数据库并删除对 db.create_all
.
的调用后,我能够 运行 flask db init
编辑 - 2017 年 4 月 27 日 端口 80 确实被我服务器上的防火墙阻止了(防火墙超出了我的控制范围)所以 运行 应用程序在一个开放的端口上解决了这个问题。
在 Powershell 下,您必须按如下方式设置 FLASK_APP
环境变量:
$env:FLASK_APP = "webapp"
那么您应该可以运行 python -m flask run
hello_app 文件夹中。换句话说,PowerShell 以不同的方式管理环境变量,因此标准命令行 set FLASK_APP=webapp
将不起作用。
如果您在 Windows,请确保没有 space 左右等于 :
set FLASK_APP=app.py
而不是
set FLASK_APP = app.py
我就是这样。由于 spaces.
,我收到“您没有提供 FLASK_APP 环境变量”错误
看起来您正在终端中使用 bash shell。阅读烧瓶 2.0 文档。命令应该是 export FLASK_APP=运行 并且没有扩展名
我遇到了同样的问题。我在 VS 代码中使用 Python 3.10。
C:\Users\hansr>flask --version
Python 3.10.1
Flask 2.0.3
Werkzeug 2.0.3
USING set FLASK_APP='main.py'
对我不起作用并抛出上述相同的错误。
尝试:
$env:FLASK_APP = "main"
python -m flask run
我正在尝试 运行 带有 flask run
的 Flask 应用程序,但无论如何,我收到此错误:
Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.
我在我的项目中使用 virtualenv,我 运行 在端口 80 上运行应用程序,所以我 运行 作为超级用户执行命令。最终,我只需要使用 Flask-Migrate 的 docs 中描述的 flask db init
命令,但 flask
需要能够找到应用程序来执行此操作。这是我尝试过的方法,但没有成功:
导出 FLASK_APP
环境变量,确保它在我的 bash 配置文件中,然后激活 virtualenv
$ export FLASK_APP=run.py
$ printenv FLASK_APP
run.py
$ . env/bin/activate
(env) $ sudo flask run
Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.
激活virtualenv,然后导出FLASK_APP
$ . env/bin/activate
(env) $ export FLASK_APP=run.py
(env) $ printenv FLASK_APP
run.py
(env) sudo flask run
Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.
以上两个带全路径,/Users/me/code/project/run.py
$ printenv FLASK_APP
/Users/me/code/project/run.py
项目结构
myproject/
├──app/
| ├── __init__.py
| ├── models.py
| ├── templates/
| └── views.py
├── tests/
├── run.py
├── requirements.txt
└── config.py
到目前为止没有任何效果,每种情况下的错误消息都是相同的。我该怎么做才能修复此错误?
假设您在初始化文件中调用 app=App(__name__)
。试试这个,尽管从技术上讲它也应该与 run.py 一起使用。
export FLASK_APP=app/__init__.py; flask run
稍后再尝试执行 echo $FLASK_APP
以查看值 实际上 是否存储在 flask 直接访问的环境变量中,而不仅仅是 bash个人资料。
当我从 sudo flask run
中删除 sudo
时,Flask 找到 $FLASK_APP
。但是,我收到错误消息 socket.error: [Errno 13] Permission denied
。我看不出解决这个问题的方法,因为当我作为超级用户 运行 时,Flask 找不到 $FLASK_APP
。好像是循环逻辑。
我已经通过将端口从 80 更改为 5000 并将 sudo
改为 flask run
来 运行 Flask。这很好,不过我必须找到一种方法 运行 生产环境中端口 80 上的应用程序。
在删除并重新创建我的数据库并删除对 db.create_all
.
flask db init
编辑 - 2017 年 4 月 27 日 端口 80 确实被我服务器上的防火墙阻止了(防火墙超出了我的控制范围)所以 运行 应用程序在一个开放的端口上解决了这个问题。
在 Powershell 下,您必须按如下方式设置 FLASK_APP
环境变量:
$env:FLASK_APP = "webapp"
那么您应该可以运行 python -m flask run
hello_app 文件夹中。换句话说,PowerShell 以不同的方式管理环境变量,因此标准命令行 set FLASK_APP=webapp
将不起作用。
如果您在 Windows,请确保没有 space 左右等于 :
set FLASK_APP=app.py
而不是
set FLASK_APP = app.py
我就是这样。由于 spaces.
,我收到“您没有提供 FLASK_APP 环境变量”错误看起来您正在终端中使用 bash shell。阅读烧瓶 2.0 文档。命令应该是 export FLASK_APP=运行 并且没有扩展名
我遇到了同样的问题。我在 VS 代码中使用 Python 3.10。
C:\Users\hansr>flask --version
Python 3.10.1
Flask 2.0.3
Werkzeug 2.0.3
USING set FLASK_APP='main.py'
对我不起作用并抛出上述相同的错误。
尝试:
$env:FLASK_APP = "main"
python -m flask run