Я начал разрабатывать API на основе Flask, используя Flasks Blueprints. Это сработало как шарм. Затем я начал его реорганизовывать, чтобы использовать связь и спецификацию чванства. После этого я не могу запустить приложение. Я получаю следующее сообщение об ошибке:
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
- connection 2.7.0
- Flask 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
Если я раскомментирую classi c Flask кодирование (и комментарий к кодировке соединения), все работает, и конечные точки доступны.
Я также проверил переменные среды, доступные в момент вызова app = connexion.FlaskApp(__name__, specification_dir="./")
. Доступны значения из .flaskenv
.
Насколько я понимаю, connexion
имеет Flask
в комплекте, и при использовании класса FlaskApp
создается приложение, подобное ванильной Flask framework.
Мой пример такой же, как в документации по подключению .
Понятия не имею, почему vanilla Flask создает приложение, а подключение нет ...
Спасибо.
mybecks