我试图按照以下链接给出的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/
有人能告诉我如何解决这个问题吗?
我在使用PowerShell时面临同样的问题,并且该修复对我有用:
而不是使用set FLASK_APP = run.py
,尝试$env:FLASK_APP = "run.py"
我通过关闭命令窗口并重新启动它来解决相同的问题。
有一个类似的问题。通过使用以下方法得到解决:flask run --no-reload
从烧瓶文件http://flask.pocoo.org/docs/0.12/server/了解到这一点
我在为烧瓶运行第一个hello世界时遇到了同样的问题。
理想情况下,应该没有任何空格,因此使用set FLASK_APP = run.py
我在运行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导入的文件的目录中导入Flask app = Flask(name)
@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语句。
如果你使用powershell它不起作用我不知道为什么请使用cmd.exe
,因为我使用VScode编辑器它默认提供powershell作为终端(ctrl+
)所以我试图在powershell上运行烧瓶应用程序,它给了我相同的响应当你得到
1)打开cmd.exe(或者如果你像我这样的VSCode用户只需在该终端上写cmd
)
2)set FLASK_APP=hello.py
(没有空格,仅用于第一次运行然后记住直到重启cmd)
3)flask run
(或只是烧瓶也会工作)
注意:这仅适用于Windows用户
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
你是否以管理员身份运行终端?我有同样的问题,并运行cmd / PowerShell作为管理员为我修复它。
编辑:我说得太早了。以管理员身份运行没有做任
真正的答案(至少我的问题)是一些其他答案的组合。
set FLASK_APP = myApp.py
,使用setx FLASK_APP myApp.py
我想知道为什么答案中缺少这个。
这是一个简单的解决方案:
添加app.run(port = 5000)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
app.run(port=5000)
然后在同一目录下运行该命令
python run.app
您必须在虚拟环境之外设置FLASK_APP变量。我假设它在@Fang重新启动命令窗口后工作的原因是因为该操作自动退出虚拟环境。
因此,如果您在虚拟环境中(在命令窗口的行开头用(venv)
表示),则键入以下命令:
deactivate
set FLASK_APP=run.py
venv\scripts\activate
flask run
你的代码是正确的。尝试像这样设置命令行变量:
setx FLASK_APP run.py
然后运行它:flask run
。
与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 -
只需放下'='周围的空间!
在寻找解决方案半小时后,我终于得到了“你没有提供FLASK_APP环境变量”的意思。因为我设置的是'FLASK_APP'变量(带空格)。