为什么我在使用 flask cli 运行 我的应用程序时会收到错误 "A valid Flask application was not obtained from..."?
Why do I get the error "A valid Flask application was not obtained from..." when I use the flask cli to run my app?
我尝试使用 flask cli 启动我的应用程序,即 flask run
。我使用 FLASK_APP
环境变量指向我的应用程序,即 export FLASK_APP=package_name.wsgi:app
在我的 wsgi.py
文件中,我使用工厂函数创建应用程序,即 app = create_app(config)
并且我的 create_app 方法如下所示:
def create_app(config_object=LocalConfig):
app = connexion.App(config_object.API_NAME,
specification_dir=config_object.API_SWAGGER_DIR,
debug=config_object.DEBUG)
app.app.config.from_object(config_object)
app.app.json_encoder = JSONEncoder
app.add_api(config_object.API_SWAGGER_YAML,
strict_validation=config_object.API_SWAGGER_STRICT,
validate_responses=config_object.API_SWAGGER_VALIDATE)
app = register_extensions(app)
app = register_blueprints(app)
return app
但是,应用程序没有启动,出现错误:
A valid Flask application was not obtained from "package_name.wsgi:app".
这是为什么?
当我使用 gunicorn 时,我可以正常启动我的应用程序,即 gunicorn package_name.wsgi:app
我的 create_app 函数不是 return class flask.app.Flask
的对象而是 class connexion.apps.flask_app.FlaskApp
的对象,因为我我正在使用连接框架。
在我的 wsgi.py 文件中,我可以简单地设置:
application = create_app(config)
app = application.app
我什至不必再执行 export FLASK_APP=package_name.wsgi:app
,如果在 wsgi.py
文件所在的文件夹中执行 flask run
命令,自动发现就会起作用。
我尝试使用 flask cli 启动我的应用程序,即 flask run
。我使用 FLASK_APP
环境变量指向我的应用程序,即 export FLASK_APP=package_name.wsgi:app
在我的 wsgi.py
文件中,我使用工厂函数创建应用程序,即 app = create_app(config)
并且我的 create_app 方法如下所示:
def create_app(config_object=LocalConfig):
app = connexion.App(config_object.API_NAME,
specification_dir=config_object.API_SWAGGER_DIR,
debug=config_object.DEBUG)
app.app.config.from_object(config_object)
app.app.json_encoder = JSONEncoder
app.add_api(config_object.API_SWAGGER_YAML,
strict_validation=config_object.API_SWAGGER_STRICT,
validate_responses=config_object.API_SWAGGER_VALIDATE)
app = register_extensions(app)
app = register_blueprints(app)
return app
但是,应用程序没有启动,出现错误:
A valid Flask application was not obtained from "package_name.wsgi:app".
这是为什么?
当我使用 gunicorn 时,我可以正常启动我的应用程序,即 gunicorn package_name.wsgi:app
我的 create_app 函数不是 return class flask.app.Flask
的对象而是 class connexion.apps.flask_app.FlaskApp
的对象,因为我我正在使用连接框架。
在我的 wsgi.py 文件中,我可以简单地设置:
application = create_app(config)
app = application.app
我什至不必再执行 export FLASK_APP=package_name.wsgi:app
,如果在 wsgi.py
文件所在的文件夹中执行 flask run
命令,自动发现就会起作用。