Получил «KeyError: <объект flask.cli.ScriptInfo по адресу 0x00000191FA23ABA8>» при запуске «heroku local: run flask deploy» - PullRequest
0 голосов
/ 31 мая 2019

Извлечение из Flask Web Development 17.4.2 и использование локального теста Heroku при выполнении развертывания heroku local: run flask произошли следующие ошибки:

Traceback (most recent call last):
  File "C:\Users\KodX\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Users\KodX\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "F:\flasky\venv\Scripts\flask.exe\__main__.py", line 9, in <module>
  File "f:\flasky\venv\lib\site-packages\flask\cli.py", line 894, in main
    cli.main(args=args, prog_name=name)
  File "f:\flasky\venv\lib\site-packages\flask\cli.py", line 557, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "f:\flasky\venv\lib\site-packages\click\core.py", line 717, in main
    rv = self.invoke(ctx)
  File "f:\flasky\venv\lib\site-packages\click\core.py", line 1132, in invoke
    cmd_name, cmd, args = self.resolve_command(ctx, args)
  File "f:\flasky\venv\lib\site-packages\click\core.py", line 1171, in resolve_command
    cmd = self.get_command(ctx, cmd_name)
  File "f:\flasky\venv\lib\site-packages\flask\cli.py", line 515, in get_command
    rv = info.load_app().cli.get_command(ctx, name)
  File "f:\flasky\venv\lib\site-packages\flask\cli.py", line 377, in load_app
    raise_if_not_found=False)
  File "f:\flasky\venv\lib\site-packages\flask\cli.py", line 254, in locate_app
    return find_best_app(script_info, module)
  File "f:\flasky\venv\lib\site-packages\flask\cli.py", line 76, in find_best_app
    app = call_factory(script_info, app_factory)
  File "f:\flasky\venv\lib\site-packages\flask\cli.py", line 114, in call_factory
    return app_factory(script_info)
  File "F:\flasky\app\__init__.py", line 22, in create_app
    app.config.from_object(config[config_name])
KeyError: <flask.cli.ScriptInfo object at 0x00000191FA23ABA8>

__init__.py

from flask import Flask
from flask_bootstrap import Bootstrap
from flask_mail import Mail
from flask_moment import Moment
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from flask_pagedown import PageDown
from config import config

bootstrap = Bootstrap()
mail = Mail()
moment = Moment()
db = SQLAlchemy()
pagedown = PageDown()

login_manager = LoginManager()
login_manager.login_view = 'auth.login'


def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    bootstrap.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    pagedown.init_app(app)

    if app.config['SSL_REDIRECT']:
        from flask_sslify import SSLify
        sslify = SSLify(app)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/auth')

    from .api import api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/api/v1')

    return app

Версия среды Подробности

Operating System: Windows 10
Python:3.7
Flask: 1.0.2

Справочные издания

Flask Web Development Version 2 17.4.2 использует локальный тест Heroku

В Heroku CLI есть локальная команда, которая тестирует приложения локально в средах, очень близких к серверам Heroku. Однако при локальном запуске приложений переменные среды, такие как FLASK_APP, больше не являются переменными среды. Локальная команда heroku ищет переменные среды, которые настраивают приложение в. env файл в верхнем каталоге приложения. Например, Файл env может содержать следующие переменные:

FLASK_APP=flasky.py
FLASK_CONFIG=heroku
MAIL_USERNAME=
MAIL_PASSWORD=

С. Файл env содержит пароли и другую конфиденциальную информацию об учетной записи, не включайте ее в систему контроля версий.

Задачи развертывания и создания базы данных выполняются до запуска приложения. Однократные задачи можно запустить с помощью команды local: run:

(venv) $heroku local: run flask deploy    
[OKAY] Loaded ENV.env File as KEY = VALUE Format    
INFO Context impl SQLiteImpl.    
INFO Will assume non-transactional DDL.    
INFO Running upgrade - > 38c4e85512a9, initial migration    
INFO Running upgrade 38c4e85512a9 - > 456a945560f6, login support    
INFO Running upgrade 456a945560f6 - > 190163627111, account confirmation    
INFO Running upgrade 190163627111 - > 56ed7d33de8d, user roles    
INFO Running upgrade 56ed7d33de8d - > d66f086b258, user information    
INFO Running upgrade d66f086b258 - > 198b0eebcf9, caching of avatar hashes    
INFO Running upgrade 198b0eebcf9 - > 1b966e7f4b9e, post model    
INFO Running upgrade 1b966e7f4b9e - > 288cd3dc5a8, rich text posts    
INFO Running upgrade 288cd3dc5a8 - > 2356a38169ea, followers    
INFO Running upgrade 2356a38169ea - > 51f5ccfba190, comments
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...