Проблема при запуске приложения Flask: create_app app.config.from_object (app_config [config_name]) KeyError: None - PullRequest
0 голосов
/ 26 марта 2019

Я скачал проект Flask с GitHub. Я пытаюсь запустить проект Flask в virtualenv, но при запуске проекта в virtualenv выдается следующая ошибка:

нет

ни \ app__init __. py ", строка 10, в create_app app.config.from_object (app_config [config_name]) KeyError: Нет

__ init__.py:

from flask import Flask
from config import app_config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

db = SQLAlchemy()

def create_app(config_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(app_config[config_name])
    app.config.from_pyfile('config.py')
    db.init_app(app)
    migrate = Migrate(app, db)
    from app import models 
    from app.home import home as home_blueprint
    app.register_blueprint(home_blueprint)
    return app

config.py:

   class Config(object):
   class DevelopmentConfig(Config):
   DEBUG = True
   SQLALCHEMY_ECHO = True
   class ProductionConfig(Config):
   DEBUG = False

   app_config = {
        'development': DevelopmentConfig,
        'production': ProductionConfig
   }

run.py:

    import os
    from app import create_app
    config_name = os.getenv('FLASK_CONFIG')
    app = create_app(config_name)
    if __name__ == '__main__':
     app.run()

1 Ответ

0 голосов
/ 26 марта 2019

Я думаю, что вы забыли установить переменную окружения FLASK_CONFIG, прежде чем пытаться запустить приложение Flask. Это приведет к сбою при поиске конфигурации среды , т.е. app_config[config_name] будет None, поскольку config_name не создан. Можете ли вы попробовать настроить переменные среды перед запуском? Например, откройте свой терминал и установите для переменной среды FLASK_CONFIG значение development , затем попробуйте перезапустить приложение, что-то вроде:

 # Macintosh Users
 export FLASK_CONFIG=development
 export FLASK_APP=<start_file> # <start_file> is probably run.py for the template
 flask run

 # Window Users
 set FLASK_CONFIG=development
 set FLASK_APP=run.py
 flask run

Надеюсь, это поможет, если это не решит вашу проблему, не могли бы вы вставить свой файл, который запускает ваше приложение? Этот файл, вероятно, run.py

...