连接:无法在模块中找到 Flask 应用程序或工厂
connexion: Failed to find Flask application or factory in module
我已经开始使用 Flasks 蓝图开发基于 API 的 Flask。这就像一个魅力。
然后我开始重构它,使用 connexion 和 swagger 规范。
之后,我无法启动该应用程序。我收到以下错误消息:
Use "FLASK_APP={module}:name to specify one.'.format(module=module.__name__)
flask.cli.NoAppException: Failed to find Flask application or factory in module "api.app". Use "FLASK_APP=api.app:name to specify one.
使用的版本:
- Python 3.7.6
- 连接 2.7.0
- 烧瓶 1.1.2
我的结构如下:
api
|-.flaskenv
|- init.py
|- app.py
.flaskenv
FLASK_APP=app.py
FLASK_ENV=development
_init_.py
# from flask import Blueprint
# bp = Blueprint("api", __name__)
# from api import endpoints # , errors # noqa F401, errors, tokens
app.py
# from flask import Flask
# from api import bp as api_bp
import connexion
# app = Flask(__name__)
# app.register_blueprint(api_bp, url_prefix="/api")
app = connexion.FlaskApp(__name__, specification_dir="./")
app.add_api("swagger.yml")
启动(在我的 venv 中):
flask run --no-debugger
如果我取消注释 classic Flask 编码(并注释连接编码),一切正常,端点可访问。
我还检查了调用 app = connexion.FlaskApp(__name__, specification_dir="./")
时可用的环境变量。 .flaskenv
中的值可用。
据我了解,connexion
已捆绑 Flask
,并且在使用 class FlaskApp
时,它正在创建一个类似于 vanilla Flask 框架的应用程序。
我的例子和connexion documentation中的一样。
我不知道为什么 vanilla Flask 创建的应用程序和连接不是...
谢谢。
我的贝克斯
解决方案
app.py
必须扩展一行以公开 Flask class 对象:application = app.app
app.py
import connexion
app = connexion.App("__name__", specification_dir="./")
app.add_api("swagger.yml")
application = app.app
我已经开始使用 Flasks 蓝图开发基于 API 的 Flask。这就像一个魅力。 然后我开始重构它,使用 connexion 和 swagger 规范。 之后,我无法启动该应用程序。我收到以下错误消息:
Use "FLASK_APP={module}:name to specify one.'.format(module=module.__name__)
flask.cli.NoAppException: Failed to find Flask application or factory in module "api.app". Use "FLASK_APP=api.app:name to specify one.
使用的版本:
- Python 3.7.6
- 连接 2.7.0
- 烧瓶 1.1.2
我的结构如下:
api
|-.flaskenv
|- init.py
|- app.py
.flaskenv
FLASK_APP=app.py
FLASK_ENV=development
_init_.py
# from flask import Blueprint
# bp = Blueprint("api", __name__)
# from api import endpoints # , errors # noqa F401, errors, tokens
app.py
# from flask import Flask
# from api import bp as api_bp
import connexion
# app = Flask(__name__)
# app.register_blueprint(api_bp, url_prefix="/api")
app = connexion.FlaskApp(__name__, specification_dir="./")
app.add_api("swagger.yml")
启动(在我的 venv 中):
flask run --no-debugger
如果我取消注释 classic Flask 编码(并注释连接编码),一切正常,端点可访问。
我还检查了调用 app = connexion.FlaskApp(__name__, specification_dir="./")
时可用的环境变量。 .flaskenv
中的值可用。
据我了解,connexion
已捆绑 Flask
,并且在使用 class FlaskApp
时,它正在创建一个类似于 vanilla Flask 框架的应用程序。
我的例子和connexion documentation中的一样。
我不知道为什么 vanilla Flask 创建的应用程序和连接不是...
谢谢。
我的贝克斯
解决方案
app.py
必须扩展一行以公开 Flask class 对象:application = app.app
app.py
import connexion
app = connexion.App("__name__", specification_dir="./")
app.add_api("swagger.yml")
application = app.app