运行Flask App时出现问题:create_app app.config.from_object(app_config [config_name])KeyError:无

时间:2019-03-26 13:08:29

标签: python flask virtualenv

我从GitHub下载了Flask项目。我正在尝试在virtualenv中运行Flask项目,但是当我在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 :(得分:0)

我认为您在尝试运行Flask应用之前忘记设置FLASK_CONFIG环境变量。这将导致您的环境配置查找失败,即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