无法从Django settings.py访问Heroku配置变量

时间:2014-02-10 17:23:24

标签: django heroku settings config

我在Heroku上设置了一些配置变量,如下所述:https://devcenter.heroku.com/articles/config-vars。 我跑的时候:

heroku config

我在列表中看到了配置变量:

COMPRESS_OFFLINE:                  True

我可以跑

heroku config:get COMPRESS_OFFLINE

我得到了:

True

在我的Django settings.py中,我有:

import os
COMPRESS_OFFLINE = os.environ['COMPRESS_OFFLINE']

以上链接的文章告诉您如何在Django中访问Heroku配置变量。我在本地.env文件中设置了此配置var,我可以在本地运行foreman。但是,当我部署到Heroku时,我在部署期间收到此错误:

KeyError: 'COMPRESS_OFFLINE'
!     Push rejected, failed to compile Python app

我觉得我错过了一些非常明显的东西,有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我得到了Heroku支持的回复,默认情况下,在slug编译期间环境变量不可用。但是,有一个名为user-env-compile的实验性功能可以使它们可用:http://devcenter.heroku.com/articles/labs-user-env-compile

但是,我不需要这个。我认为,因为它在编译期间无法找到它们根本无法找到它们。但是,我发现它们在编译后可用。所以,我刚刚将settings.py更新为:

COMPRESS_OFFLINE = os.environ.get('COMPRESS_OFFLINE', True)

因此,当环境变量不可用时,它在编译期间默认为True。