我有一个运行在Ubuntu 16.04上的Django项目,包含Nginx和Gunicorn。 我正在尝试设置一个环境变量,以便为生产加载不同的设置文件。我尝试过以下几点都不胜一筹。
在etc / environment中我添加了我的变量。该文件看起来像这样,
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
PRODUCTION="Production_Variable"
变量的值无关紧要。
当我运行printenv时,我可以看到这个变量实际存在! 但是我的django项目仍然没有“看到”它。
try:
if 'PRODUCTION' in os.environ:
from .prod import *
except:
pass
我有点困惑,printenv显示环境变量存在,但Django无法看到它。我试图做的事情看起来有什么明显的错误吗?
答案 0 :(得分:0)
好的,我希望这可以帮助将来遇到同样问题的人。我最终编辑了我的gunicorn.service文件并添加了以下行..
[Unit]
Description=gunicorn daemon
After= network.target
[Service]
User=root
Group=www-data
Environment="Production=production"
WorkingDirectory= # stuff
[Install]
WantedBy=multi-user.target
所以我的文件看起来像这样
{{1}}
答案 1 :(得分:-1)
看看django自己的设置文件。
这部分可能会有所帮助
在设置文件中添加自定义env变量:
class SafeAccount extends Account {
public SafeAccount(int balance) {
super(balance > 0? balance: 0);
}
}
然后您可以使用以下方式访问它:
MY_CUSTOM_SETTINGS = 'hello'