我正在尝试按照以下链接给出的Windows机器上的烧瓶文档: http://flask.pocoo.org/docs/0.11/quickstart/#debug-mode
首先,我在python脚本中编写了以下代码:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(debug=True)
我将其保存在名为run.py
然后在命令窗口中写了这个命令:
set FLASK_APP = run.py
flask run
运行此操作后,我收到以下错误:
"Error: Could not locate flask application. You did not provide the FLASK_APP environment variable"
我期待得到这个:
Running on http://127.0.0.1:5000/
有人可以告诉我如何解决这个问题吗?
答案 0 :(得分:43)
我在使用PowerShell时遇到了同样的问题,而且该解决方案对我有用:
而不是使用set FLASK_APP = run.py
,请尝试$env:FLASK_APP = "run.py"
答案 1 :(得分:10)
如果您使用的是PowerShell,它不起作用,我不知道为什么
请使用cmd.exe
因为我使用VScode编辑器它默认提供powershell作为终端(ctrl+
),所以我试图在powershell上运行flask应用程序,它给你的回复与你得到的相同
1)打开cmd.exe(或者如果你 VSCode 像我这样的用户只需在该终端上写cmd
)
2)set FLASK_APP=hello.py
(没有空格,仅适用于第一次运行,然后记住直到重新启动cmd)
3)flask run
(或只是烧瓶也可以)
注意:这仅适用于Windows用户
答案 2 :(得分:7)
export FLASK_APP=run.py
flask run --host=0.0.0.0
然后可以正常运行,输出类似:
* Serving Flask app "hello"
* Forcing debug mode on
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: 353-795-063
答案 3 :(得分:3)
您是否以管理员身份运行终端?我遇到了同样的问题,并且运行cmd / PowerShell作为管理员为我修复了它。
编辑:我说得太早了。以管理员身份运行没有任何作用。真正的答案(至少我的问题)是其他一些答案的组合。
set FLASK_APP = myApp.py
setx FLASK_APP myApp.py
答案 4 :(得分:1)
您必须在虚拟环境之外设置FLASK_APP变量。我假设它在@Fang重新启动命令窗口后工作的原因是因为该操作自动退出虚拟环境。
因此,如果您在虚拟环境中(在命令窗口的行开头用(venv)
表示),则键入以下命令:
deactivate
set FLASK_APP=run.py
venv\scripts\activate
flask run
答案 5 :(得分:1)
setx FLASK_APP test.py
的成功。注意:如果没有运行,请关闭命令行并启动其他命令行。
D:\projects\flask-oauthlibpy2>.evn\Scripts\activate
(.evn) D:\projects\flask-oauthlibpy2>setx FLASK_APP test.py
SUCCESS: Specified value was saved.
(.evn) D:\projects\flask-oauthlibpy2>flask run
* Serving Flask app "flask-oauthlibpy2.test"
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [24/May/2017 14:35:06] "GET / HTTP/1.1" 200 -
答案 6 :(得分:1)
只需放下空间' =' !
在寻找解决方案半小时后,我终于得到了什么'您没有提供FLASK_APP环境变量'意思。因为我设置的是' FLASK_APP'变量(带空格)。
答案 7 :(得分:1)
我在Windows上遇到了同样的问题,并从烧瓶文档中找到了解决方案:https://flask.palletsprojects.com/en/1.1.x/tutorial/factory/
我的文件结构: Flask_folder >> app
(NB!应用程序文件夹包含:__init_.py和routes.py)
> set FLASK_APP=app
> set FLASK_ENV=development
> flask run
答案 8 :(得分:0)
有类似的问题。通过使用以下解决方案: 烧瓶运行--no-reload
中了解到这一点答案 9 :(得分:0)
> set FLASK_APP=Your_file_name.py
> set FLASK_ENV=development
> flask run
它必须只适用于 windows 用户
答案 10 :(得分:0)
不同的shell程序具有设置环境变量的不同方式。这样Flask才能正确发现您的应用程序。
Unix Bash / Zsh(Linux,Mac等):
$ export FLASK_APP=hello
$ flask run
Windows CMD:
> set FLASK_APP=hello
> flask run
Windows PowerShell:
> $env:FLASK_APP = "hello"
> flask run
您可以在Flask docs中找到更多信息。
答案 11 :(得分:0)
这对我有用:
setx FLASK_APP sqlAlchemy.py
python - m flask run
我有一台Alienware笔记本电脑,并且正在使用Windows 10。
不确定它是否有效,但这是试验与永恒的结合。 根据您所拥有的操作系统,解决方案似乎会有所不同。 IT可能是一个环境变量问题,但同样不确定。
- 这里还有其他可能的解决方案,这些解决方案对我不起作用,但我将它们收集为可能。
答案 12 :(得分:0)
我遇到了同样的问题,但是以下命令在PowerShell中对我有用:
python -m flask run
答案 13 :(得分:0)
只需将等于符号的空格删除即可。 设置FLASK_APP = python_file_name.py
答案 14 :(得分:0)
答案 15 :(得分:0)
我通过关闭命令窗口并重新启动它来解决同样的问题。
答案 16 :(得分:-1)
我遇到了运行Flask快速启动中所述命令的同样问题。在Windows 10上使用Powershell
projects>set export FLASK_APP=hello.py
projects>flask run
* Running on http://127.0.0.1:5000/
我需要在包含该文件的目录中键入python <filename.py>
来自flask进口烧瓶
app = Flask(名称)
@app.route('/')
def hello_world():
return 'Hello, World!
之后,您将收到一条带有IP地址的消息
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
您将IP地址复制到浏览器中,然后您应该看到您的hello world语句。