![](/img/trans.png)
[英]Error: Failed to find Flask application or factory in module 'app'. Use 'FLASK_APP=app:name' to specify one
[英]Error launching Flask app with error "Failed to find Flask application"
我是Flask的新手。 要启动 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)
我希望 web 服务器能够启动并能够导航到本地主机http://127.0.0.1:5000/
在那里我可以查看Hello, World!
在我的浏览器上,但这从未发生过。
而不是“烧瓶”使用FLASK_APP=theflaskapp.py
,就像 Marco 建议的那样:
env FLASK_APP=theflaskapp.py python -m flask run
这应该可以修复它,如果没有,请确保您正在执行命令以在与其相同的目录中运行脚本。 您还应该通过运行“python theflaskapp.py”(仍在与烧瓶应用程序相同的目录中)检查问题是否在烧瓶中,并查看它是否有效。
你好,我已经重现了这个问题,这是错误代码:
错误:无法在模块“src.app”中找到 Flask 应用程序或工厂。 使用 "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!'
烧瓶错误的解决方案:找不到烧瓶应用程序。 您没有提供“FLASK_APP”环境变量,并且在当前目录中找不到“wsgi.py”或“app.py”模块。 在 Windows 上尝试set FLASKAPP=appname.py
如果您使用 PowerShell 并且如果出现上述错误,请尝试此👇👇
$env:FLASK_APP = "filename"
$env:FLASK_ENV = "development"
Flask run
如果您在启动烧瓶应用程序时遇到问题,请尝试一下。
您需要指定要使用的文件。 尝试这个。
对于 Windows:
set FLASK_APP=app.py
python -m flask run
对于 Mac 操作系统和 Linux:
export FLASK_APP=app.py
python -m flask run
另一个工作选项是执行此命令而不是 flask run :
flask run --host=0.0.0.0
我有同样的问题,我在这里尝试了所有提到的答案,但最终无法奏效。
我遇到了同样的错误。 问题是您必须在当前项目中设置环境变量 FLASK_APP。
但是,我有最简单的方法来解决这个问题。 您可以使用python app.py
而不是使用flask run
命令。
“app.py”是您的应用程序入口点。
我有一个类似的问题。 从命令提示符使用python app.py
似乎可以正常工作。 但是,它无法使用 VS Code Debug 启动。
诀窍是添加:
server = app.server
在调用app.run_server()
部分之前
运行应用程序而不会出现任何问题的最简单方法是创建应用程序,然后运行python app.py
from flask import (
Flask,
jsonify
)
# Function that create the app
def create_app(test_config=None ):
# create and configure the app
app = Flask(__name__)
# Simple route
@app.route('/')
def hello_world():
return jsonify({
"status": "success",
"message": "Hello World!"
})
return app # do not foget to return the app
APP = create_app()
if __name__ == '__main__':
# APP.run(host='0.0.0.0', port=5000, debug=True)
APP.run(debug=True)
在 venv 和我的 Windows10 上,只有这种语法有效:
set FLASK_APP=name_of_file:name_of_var_app
If file is application.py and 'app = Flask(__name__)',
run:
set FLASK_APP=application:app
你应该改变文件名,我也有同样的问题。 所以,我更改了应用程序文件的名称,它对我有用。 起初我的应用程序文件名是“socket.py”,我将其更改为“app.py”。
我的问题是python文件没有执行权限:
chmod a+x app.py
类似的问题。 我在 vs 代码中运行代码。 安装 python 扩展并选择不同的 python 解释器(在我的情况下为 3.10,5 64 位)。 我的 vs 代码界面右上角有一个播放按钮。 这为我解决了这个问题。
我建议不要提供一个超级直接的“试试这个”建议,而是直接转到 flask 源代码到引发此异常的位置,然后从那里进行逆向工程。 https://github.com/pallets/flask/blob/main/src/flask/cli.py#L78-L82
您可以通过转到site-packages/flask/cli.py
文件并在引发此错误的位置周围设置断点来在编辑器中打开它,然后从那里四处寻找。
在我的情况下是一个非常简单的问题,activate.bat 文件设置为 Macintosh (CR) 我更改为 Windows (CR LF),这对我有用。
说明:在 windows 操作系统中,为了使指令生效,例如 [set FLASK_ENV = development] 需要一个强回车,例如 (CR LF),这就是我可以验证的情况。 您可以尝试在控制台、cmd中运行SET指令,并检查是否反映了FLASK设置。 我知道这更多是环境配置的问题,而不是应用程序本身的问题。
在我的情况下超级简单,而且几乎是愚蠢的......我忘记了保存文件(CTRL + S),我得到了完全相同的错误。 一旦我保存了文件,它就可以直接工作了!
尝试从这行代码中删除空格,当我遇到此错误时,这是为我解决的问题:
app=Flask(__name__)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.