Python 导出烧瓶配置=';发展';论赫罗库

Python 导出烧瓶配置=';发展';论赫罗库,python,heroku,flask,Python,Heroku,Flask,在我的flask应用程序中,我运行命令export flask\u CONFIG='development' 在本地运行应用程序。但是现在在heroku中,当我运行命令heroku run init时,得到一个错误,我知道我应该导入export FLASK\u CONFIG='development,但是在heroku中该怎么做呢 错误: (venv)peg@peg:~/Fast-monks$ heroku run python manage.py shell Running `python m

在我的flask应用程序中,我运行命令
export flask\u CONFIG='development'
在本地运行应用程序。但是现在在heroku中,当我运行命令
heroku run init
时,得到一个错误,我知道我应该导入export FLASK\u CONFIG='development,但是在heroku中该怎么做呢

错误:

(venv)peg@peg:~/Fast-monks$ heroku run python manage.py shell
Running `python manage.py shell` attached to terminal... up, run.6078
postgres://fboastbcwkwdsa:bIrdHsid_Zv3GOzyrhCB9x1oig@ec2-174-129-1-179.compute-1.amazonaws.com:5432/dfg3hpuotv5lal
postgres://fboastbcwkwdsa:bIrdHsid_Zv3GOzyrhCB9x1oig@ec2-174-129-1-179.compute-1.amazonaws.com:5432/dfg3hpuotv5lal
Traceback (most recent call last):
  File "manage.py", line 9, in <module>
    app = create_app(os.environ['FLASK_CONFIG'] or 'default')
  File "/app/.heroku/python/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'FLASK_CONFIG'
WARNING: Toolbelt v3.28.4 update available.
config.py:

class Config(object):
    DEBUG = False
    SECRET_KEY = 'Thisismysecretkey'
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL',
             'postgresql+psycopg2://peg:1234@localhost/app')
    print SQLALCHEMY_DATABASE_URI


class HerokuConfig(ProductionConfig):
    def init_app(cls, app):
        ProductionConfig.init_app(app)
        import logging
        from logging import StreamHandler
        file_handler = StreamHandler()
        file_handler.setLevel(logging.WARNING)
        app.logger.addHandler(file_handler)


config = {
    'development': DevelopmentConfig,
    'testing': TestingConfig,
    'production': ProductionConfig,
    'heroku': HerokuConfig,
    'default': DevelopmentConfig}

您应该通过
heroku
命令设置环境变量:

heroku config:set FLASK_CONFIG=development
尽管manage.py看起来是错误的,但您似乎试图设置一个默认值,以防var不存在,但在到达默认值之前,会引发keyerror。改用这个:

app = create_app(os.environ.get('FLASK_CONFIG', 'default'))
app = create_app(os.environ.get('FLASK_CONFIG', 'default'))