在具有多个django项目的计算机中设置项目特定的DJANGO_SETTINGS_MODULE

时间:2013-10-28 23:17:36

标签: django deployment environment-variables

我的虚拟机目前正在托管一个django(ngsdbview)项目(带有virtualenv设置的Django 1.5 / gunicorn / nginx)。我没有使用默认设置文件,而是设置了/settings/production.py(或dev.py等)。所以,我之前为机器定义了DJANGO_SETTINGS_MODULE变量。

现在,我将第二个django项目(样本)添加到同一台机器,并想知道如何配置项目特定的DJANGO_SETTINGS_MODULE变量?

谢谢, Gowthaman

2 个答案:

答案 0 :(得分:0)

您可以为每个项目单独将每个设置文件传递给guincorn。我建议调查supervisord来管理您的guincorn进程,以便您可以使用不同的设置为每个项目保持一个运行。

您可以设置配置文件,如

[program:project1]
command=/var/www/project1/manage.py run_gunicorn --settings=project1.settings.production
directory=/var/www/project1/
environment=PATH="/var/www/project1/venv/bin"
user=www-data
autostart=true
autorestart=true

[program:project2]
command=/var/www/project2/manage.py run_gunicorn --settings=project2.settings.production
directory=/var/www/project2/
environment=PATH="/var/www/project2/venv/bin"
user=www-data
autostart=true
autorestart=true

因此,您无需在环境变量中定义它,而是可以在supervisord配置文件中定义设置,然后维护每个项目的流程。

答案 1 :(得分:0)

蒂姆埃德加的解决方案运作良好,我更喜欢。

同时从here提示我补充道 export DJANGO_SETTINGS_MODULE=myproject.settings.production 在bin / activate脚本中。这也有效。但是,添加到激活脚本可能不是最佳解决方案,因为虚拟机的每次重新创建/新部署都会消失。