为什么我在使用 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 命令,自动发现就会起作用。