2013-08-28 13 views
7

के माध्यम से चलाने के मैं एक Django वेबसाइट, एक वातावरण चर, DJANGO_MODE का उपयोग करता है जो सेटिंग्स का उपयोग करने का फैसला किया है। पर्यावरण चर bashrc में है और जब विकास सर्वर का उपयोग कर ऐप चला रहा है, तो सब कुछ ठीक काम करता है।Django अनदेखी वातावरण चर जब uWSGI

लेकिन जब मैं uWSGI का उपयोग करके ऐप चलाता हूं, तो यह पर्यावरण चर को नोटिस नहीं करता है और उत्पादन के बजाय डिफ़ॉल्ट (विकास) सेटिंग्स का उपयोग करता है।

मैं सम्राट मोड में uWSGI चलाते हैं, और वातावरण चर अनदेखी के अलावा, सब कुछ ठीक चल रहा है जा रहा है। और हाँ, उपयोगकर्ता uWSGI चल ही है जिसके लिए bashrcDJANGO_MODE सेट है।

uWSGI संचालित करने वाले आदेश है -

exec uwsgi --emperor /etc/uwsgi/vassals --uid web_user --gid --web_user 

और जागीरदार के लिए ini फ़ाइल - यह रूप में बैश config फ़ाइलों बैश द्वारा पढ़ा जाता है काम नहीं कर सकता

[uwsgi] 
processes = 2 
socket = /tmp/uwsgi.sock 
wsgi-file = /home/web_user/web/project_dir/project/wsgi.py 
chdir = /home/web_user/web/project_dir 
virtualenv = /home/web_user/.virtualenvs/production_env 
logger = syslog 
chmod-socket = 777 

उत्तर

9

। आपको सम्राट या वासल में var सेट करना होगा (दूसरा एक बेहतर दृष्टिकोण है)। बस अपने config को

env=DJANGO_MODE=foobar 

जोड़ने (सफेद स्थान का उपयोग नहीं करते)।

+0

मैं यह भी कहा कि जागीरदार में, काम नहीं किया कोशिश की है। – elssar

+0

यह जांचने के लिए कुछ प्रिंट जोड़ें कि क्या DJANGO_MODE os.en वातावरण में उपलब्ध है, हो सकता है कि आपके पास किसी अन्य प्रकार की समस्या हो। में खाता DJANGO_SETTINGS_MODULE बहुत शुरुआत में सेट किया गया है ले लो तो जांच wsgi.py – roberto

+1

रवींद्र में होना होता है! मेरे पास एनवी सेट था जिसमें रिक्त स्थान थे - 'env = DJANGO_MODE = mode', जो समस्याएं पैदा कर रहा था। – elssar

संबंधित मुद्दे