2017-04-27 48 views
0

我的項目基於Django,Nginx,Gunicorn和虛擬環境中的Supervisor。導出DJANGO_SETTINGS_MODULE作爲環境變量在主管

我在./bin/activate腳本末尾輸出環境變量。每當我source激活文件,它會導出環境變量。這很酷...

我的問題來了,當我啓動主管腳本。看起來./bin/activate不是由於Django無法獲得像SECRET_KEY這樣的變種而產生的。

我聽到有人用我的virtualenv bin dir中沒有的post-activate腳本。我錯過重要的東西嗎?爲什麼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 
+0

但是您沒有任何該配置調用激活。你如何期待它發生? –

+0

我天真地認爲通過'pip'將virtualenv安裝到virtualenv會將它綁定到它所屬的virtualenv,並因此以某種方式激活它。 –

回答

0

至於解釋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