2011-02-13 11 views
7
virtualenv --no-site-packages v1 

cd v1\Scripts 

activate.bat 

python -c "import django" # - no problem here 

यह Django पैकेज क्यों देखता है ??? मुझे मुझे एक आयात त्रुटि देनी चाहिए, है ना?virtualenv --no-site-packages मेरे लिए काम नहीं कर रहा है

+0

क्या 'पायथन-सी "आयात sys; प्रिंट sys.executable" 'उत्पादन करता है? – jfs

+0

@ जेएफ। : v1 \ स्क्रिप्ट \ python.exe – agend

+0

@agend: क्या यह सुनिश्चित है कि यह एक नया वातावरण है? ऐसे वातावरण को बनाने का प्रयास करें जो पहले से मौजूद नहीं है, उदाहरण के लिए, 'virtualenv --no-site-packages 4fd700ca' – jfs

उत्तर

9

बस PYTHONPATH पर्यावरण चर सेट करें। वर्चुअलएन्व का विचार यह है कि आप अपना खुद का वातावरण बना सकते हैं (पूरी तरह से अलग या डिफ़ॉल्ट को विस्तारित कर सकते हैं) ताकि आपको इसके साथ गड़बड़ न हो।

जैसा कि किसी ने देखा है कि पहले से ही a similar question on SO रहा है। यदि आपको बेहतर स्पष्टीकरण की आवश्यकता है तो इसे पढ़ें।

2

इसे ImportError को पैकेज sys.path में तब तक नहीं बढ़ाया जाना चाहिए।

आप सोच रहे हैं कि जहां django आता है, से चलाएँ:

python -c "import django; print django.__file__" 

फिर पायथन के Module Search Path की जाँच करें।

अद्यतन: के रूप में टिप्पणी में कहा: ध्यान में रखें कि virtualenv में --no-site-packages विकल्प केवल sys.path से मानक साइट-संकुल निर्देशिका निकाल देता है। अन्य पथ बस वही रहते हैं।

+0

हाँ, मुझे पता है कि यह कहीं से आ रहा है, लेकिन मैं virtualevn पर्यावरण को सक्रिय करने के बाद इसे देखना नहीं चाहता - मुझे क्या करना चाहिए? क्या मुझे अपना पायथन/सिस्टम पथ हाथ से सेट करना है? मैं वर्चुअलनेव को मेरे लिए यह करने की उम्मीद कर रहा था – agend

+4

हां, वर्चुअलएन्व मॉड्यूल सर्च पथ ('sys.path') को संशोधित करता है। लेकिन यह पता लगाने के लिए कि 'django' कहां है, आपको पैकेजों के अलगाव को ठीक करने में मदद कर सकता है। '--no-site-packages' सिर्फ 'sys.path' से मानक साइट-पैकेज निर्देशिका को हटा देता है। बाकी सब कुछ अभी भी बना हुआ है। – scoffey

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