2012-08-13 17 views
5

मैं django + nginx + uwsgi चला रहा हूं। किसी कारण से मैं वर्चुअल वातावरण को इंगित करते हुए, घर विकल्प सेट किए बिना uWSGI शुरू नहीं कर सकता। जब भी मैं इसके बिना uWSGI शुरू करता हूं, यह कहता है कि यह मॉड्यूल django.core.wsgi नहीं ढूंढ सकता है, जैसे कि पाइथन पथ खाली था (लेकिन django 1.4 सिस्टम-व्यापी स्थापित है)।वर्चुअलएन्व (ImportError) के बिना uWSGI सर्वर शुरू नहीं कर सकता

मैं इसे कैसे ठीक कर सकता हूं?

+1

कुछ गलत नहीं है। वर्चुअल एनवायरनेंट निर्दिष्ट करने के लिए आपको 'home' विकल्प का उपयोग करने की आवश्यकता है जिसमें django स्थापित है। अन्यथा, uwsgi एक सिस्टम चौड़े स्तर पर परिचालन करेगा, जहां django स्थापित नहीं है। [Uwsgi उदाहरण] देखें (http://projects.unbit.it/uwsgi/wiki/VirtualEnv)। –

+1

@ टिममी ओ'मोनी अगर आप मेरे प्रश्न को बारीकी से देखते हैं, तो आप वास्तव में देख सकते हैं कि मैंने उल्लेख किया है कि django "system-wide" स्थापित है। – DataGreed

+0

मैं इसे और अधिक स्पष्ट बनाने के लिए इसे संपादित करूंगा – DataGreed

उत्तर

15

चूंकि मैंने इस समस्या पर भी अपना सिर मारा, चलो सभी के लिए एक जवाब लिखें। :) समस्या यह है कि, सम्राट मोड (सिस्टम चौड़ा) में शुरू होने पर, uwsgi मास्टर प्रक्रिया पाइथन (पायथनपैथ) के लिए सही वातावरण लोड नहीं कर सकती (या नहीं)। वर्चुअलएन्व का उपयोग करके आप वातावरण निर्दिष्ट करते हैं। इसके बिना आपको pythonpath चर सेट करने की आवश्यकता है, यहां तक ​​कि सिस्टम-व्यापी पायथन पथ को इंगित करने के कई बार भी।

बस एक उदाहरण के रूप में, अपने सिस्टम के लिए यह है:

pythonpath = /usr/local/lib/python2.7/dist-packages 
pythonpath = /usr/lib/python2.7 

(आरं सिंटैक्स का उपयोग)

+0

मुझे मैकोज़ सिस्टम में यह त्रुटि आती है लेकिन उसी कॉन्फ़िगरेशन फ़ाइल के साथ Centos6 में नहीं। कॉन्फ़िगरेशन फ़ाइल में 'virtualenv' जोड़ने के बाद इसे ठीक करें। क्या आप इस संतृप्ति की व्याख्या कर सकते हैं? रनिंग कमांड '/ path_to_venv/bin/uwsgi -y uwsgi.conf' –

+0

@ सिमिनजी क्षमा करें, मैं मैकोज़ का उपयोग नहीं करता हूं। और मैं इसे सर्वर के रूप में उपयोग नहीं करता। –