【发布时间】:2016-05-07 16:12:40
【问题描述】:
我正在使用 django 和 virtualenvwrapper。我的目标是根据 12Factor 应用程序建议 (http://12factor.net) 从设置文件中删除所有敏感信息,并最终部署到 heroku。在本地测试时,为了实现这一点,我创建了一个具有不同变量值的 .env 文件,例如 SECRET_KEY。我去了我的 virtualenv 目录并将以下行添加到 postactivate 脚本中:
source .env
每当我为一个项目(即 workon project_name)启动我的虚拟环境时,如果我从终端回显,来自 .env 的环境变量就可用
$ echo $SECRET_KEY
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
但是,当我尝试从 python 访问这些变量时,它们不可用
>>> import os
>>> os.environ.get('SECRET_KEY')
>>>
python 访问存储在 .env 文件中的环境变量的正确方法是什么?
.env 文件:
WEB_CONCURRENCY=2
SECRET_KEY='XXXXXXXXXXXX'
DEBUG=True
【问题讨论】:
-
你是
exportSECRET_KEY还是只是定义SECRET_KEY=xxxxxxx? -
我在 .env 中定义了 SECRET_KEY,并且每次运行“workon project_name”时都在获取 .env 文件。我从未在 .env 文件中明确导出它或任何内容。
-
不,我的意思是你在
.env文件中写了什么。你有export SECRET_KEY=xxxxx或SECRET_KEY=xxxxxxx吗? -
@alexolivas 请出示您的 .env 文件。
-
SECRET_KEY=xxxxxxx
标签: python django heroku foreman env