我是Flask的新手。要启动烧瓶应用程序,我做了python -m flask run
,但反复出现错误
无法在模块“ app”中找到Flask应用程序或工厂。使用“ FLASK_APP = app:name指定一个。
我在Windows 10计算机上使用virtualenv
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello, World!"
if __name__ == '__main__':
app.run(debug=True)
我希望网络服务器能够启动,并且能够导航到本地页面并查看“ Hello,World!”
答案 0 :(得分:4)
您好,问题已复现 这是错误代码:
<块引用>错误:无法在模块中找到 Flask 应用程序或工厂 “src.app”。使用“FLASK_APP=src.app:name 指定一个。
重现错误的步骤:
from flask import Flask
def create_app():
app = Flask("abc")
@app.route('/')
def hello_world():
return 'Hello, World!'
或者让文件为空,像这样:
# This is an empty file
# There is no flask application here
export FLASK_APP=app.py
flask run
from flask import Flask
def create_app():
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
return app
app = create_app()
from flask import Flask
app = Flask("abc")
@app.route('/')
def hello_world():
return 'Hello, World!'
答案 1 :(得分:2)
flask 错误的解决方案:找不到 Flask 应用程序。您没有提供“FLASK_APP”环境变量,并且在当前目录中未找到“wsgi.py”或“app.py”模块。
在 Windows 上尝试 set FLASKAPP=appname.py
如果您使用 PowerShell 并且遇到上述错误,请尝试这个??
$env:FLASK_APP = "filename"
$env:FLASK_ENV = "development"
Flask run
如果您在启动 Flask 应用程序时遇到问题,请尝试。
答案 2 :(得分:0)
使用FLASK_APP=theflaskapp.py
而不是“烧瓶”,就像Marco建议的那样:
env FLASK_APP=theflaskapp.py python -m flask run
这应该修复它,如果没有,请确保您正在执行命令以在与脚本相同的目录中运行脚本。您还应该通过运行“ python theflaskapp.py”(与烧瓶应用程序仍在同一目录中)来检查问题是否出在烧瓶中,并查看其是否完全起作用。
答案 3 :(得分:0)
另一个工作选项正在执行此命令,而不是执行flask运行:
flask run --host=0.0.0.0
我遇到了同样的问题,我在这里尝试了所有提到的答案,但最终无法解决问题。
答案 4 :(得分:0)
我遇到了同样的错误。问题是您必须在当前项目中设置环境变量FLASK_APP。
但是,我有解决此问题的最简单方法。可以使用flask run
代替使用python app.py
命令。
“ app.py” 是您的应用程序入口点。
答案 5 :(得分:0)
您需要指定要使用的文件。试试这个。
对于Windows:
set FLASK_APP=app.py
python -m flask run
对于Mac OS和Linux:
export FLASK_APP=app.py
python -m flask run
答案 6 :(得分:0)
我有类似的问题。在命令提示符下使用python app.py
似乎可以正常工作。但是,它将无法通过VS Code Debug启动。
诀窍是添加:
server = app.server
在调用app.run_server()
部分之前
答案 7 :(得分:-1)
尝试从此行代码中删除空格,这是在发生此错误时为我解决的问题:
app=Flask(__name__)
答案 8 :(得分:-2)
就我而言,这是一个非常简单的问题,activate.bat文件设置为Macintosh(CR),我更改为Windows(CR LF),并且对我有用。
说明:在Windows OS中,为了使指令生效,例如[set FLASK_ENV = development],需要一个强回车符,例如(CR LF),这是我可以验证的结果。您可以尝试在控制台cmd中运行SET指令,并检查FLASK设置是否得到反映。我知道这更多是环境配置问题,而不是应用程序本身问题。