2009-12-07 14 views
7
  1. यदि मेरे पास वैश्विक साइट-पैकेज और स्थानीय दोनों में एक निश्चित पैकेज स्थापित है, तो कौन सा पैकेज आयात किया जाएगा? क्या वह भी काम करेगा या मुझे कोई त्रुटि मिलेगी?
  2. मुझे वैश्विक साइट-पैकेज में कौन से पैकेज रखना चाहिए और स्थानीय में कौन सा पैकेज होना चाहिए?

उत्तर

9

पिछले जवाब सवाल 1 अप लपेटता लेकिन सवाल 2.

सामान्य श्रेष्ठ व्यवहार मैंने देखा है, जिसके लिए विश्व स्तर पर डाल करने के लिए पैकेज पर ध्यान नहीं देता:

पहले, कोर अजगर संकुल, इन डॉन 'के रूप में जब तक आप एक प्रमुख संस्करण को अपग्रेड नहीं कर लेते हैं, तब तक पीछे की असंगत समस्याओं के साथ परिवर्तन नहीं करते हैं, और आप अपने वर्चुअलएन्ड्स पर स्वचालित रूप से लागू होने के लिए किसी भी पाइथन अपग्रेड से सुरक्षा को ठीक करना चाहते हैं।

दूसरा, संकुल जो कि प्रत्येक व्यक्ति वर्चुअलएन्व में आसान-स्थापना या पाइप स्थापित करने के लिए दर्द हैं, लेकिन यह अक्सर नहीं बदलता है - उदाहरण के लिए MySQLdb/psycopg और PIL।

बहुत कुछ और आपके वर्चुअलनव के पैकेज में जाना चाहिए (मैं अत्यधिक pip आवश्यकता फ़ाइलों और virtualenvwrapper का उपयोग करने की सलाह देता हूं ताकि यह कम से कम दर्दनाक और अन्य मशीनों पर स्थापित हो सके)।

3

डिफ़ॉल्ट रूप से बनाए गए वर्चुअल वातावरण को वैश्विक साइट-पैकेज निर्देशिका तक पहुंच है, जब तक --no-site-packages के साथ बनाया गया हो। कुछ पर्यावरण सक्रिय किए गए easy_install (नए पैकेज इंस्टॉल करना) को कॉल करना वैश्विक साइट-पैकेज (विरासत के समान) में पहले से मौजूद मौजूदा लोगों के स्थानीय ओवरराइट का कारण बन जाएगा। पर्यावरण खोने पर पर्यावरण अपने स्थानीय पैकेज का उपयोग करेगा - वैश्विक।

+5

* डिफ़ॉल्ट रूप से बनाए गए वर्चुअल वातावरण को वैश्विक साइट-पैकेज निर्देशिका तक पहुंच है * यह अब सत्य नहीं है। –

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