将DJANGO_SETTINGS_MODULE导出为主管中的环境变量

时间:2017-04-27 07:39:07

标签: django virtualenv gunicorn supervisor

我的项目基于Django,Nginx,Gunicorn和虚拟环境中的主管。

我在./bin/activate脚本的末尾导出环境变量。每当我source激活文件时,它都会导出环境变量。这很酷......

当我启动Supervisor脚本时,我的问题出现了。似乎./bin/activate不是来源的,因为Django无法获得像SECRET_KEY这样的变种。

我听说人们使用了一个后激活脚本,这个脚本在我的virtualenv bin目录中没有。我错过了重要的事吗?为什么Supervisor不会提供./bin/activate脚本?

这是我的主管conf:

command=/opt/.virtualenvs/plcweb/bin/gunicorn plcweb.config.wsgi -c /opt/plcweb/gunicorn.conf.py
directory=/opt/plcweb/project
user=bastien
autostart=true
autorestart=true
redirect_stderr=True
stdout_logfile=/opt/plcweb/gunicorn.log
stderr_logfile=/opt/plcweb/gunicorn.log

1 个答案:

答案 0 :(得分:1)

正如here所解释的那样,你有一个非常简单的environment指令解决方案。因此,要导出DJANGO_SETTINGS_MODULE,主管conf文件应如下所示:

command=/opt/.virtualenvs/plcweb/bin/gunicorn plcweb.config.wsgi -c /opt/plcweb/gunicorn.conf.py
environment=DJANGO_SETTINGS_MODULE=my_project.settings.production
directory=/opt/plcweb/project
user=bastien