2010-04-09 14 views
15

मेरी /usr/local/lib/python.../dist-package निर्देशिका में देख रहे हैं, मेरे पास .egg निर्देशिकाएं और .egg फ़ाइलें हैं।easy_install कुछ पायथन अंडे निकालने क्यों नहीं करता है और दूसरों को नहीं?

इंस्टॉलर .egg निर्देशिका में अतिरिक्त पैकेज क्यों चुनता है, फिर भी .egg एक्सटेंशन के साथ अन्य फ़ाइलों को छोड़ दें?

उत्तर

26

यदि पैकेज में केवल शुद्ध-पायथन कोड है, तो यह केवल एक अंडे फ़ाइल के रूप में रह सकता है। पायथन दुभाषिया सीधे अंडे से पाइथन मॉड्यूल लोड कर सकते हैं। यदि पैकेज में सी या अन्य डेटा में लिखे गए मॉड्यूल शामिल हैं, तो अंडे निकालने की आवश्यकता है ताकि सी मॉड्यूल और/या डेटा तक पहुंचा जा सके। यह संकुल का डिफ़ॉल्ट व्यवहार है, मुझे विश्वास है। पाइथन के नए संस्करण अंडे फ़ाइलों से सी मॉड्यूल लोड करने में सक्षम हो सकते हैं; मुझे उस हिस्से के बारे में निश्चित नहीं है।

पैकेज के निर्माता भी zip_safe = False से setup() को अपने setup.py में पास करके, पैकेजर को अनजिप करने के लिए इंस्टॉलर को विशेष रूप से निर्देश दे सकते हैं।

आखिरकार, इंस्टॉल करने वाला व्यक्ति आसानी से -Z विकल्प को पार करके अंडे को अनपैक करने के लिए या pydistutils.cfg में zip_ok = false सेट करके आसानी से स्थापित कर सकता है।

4

मैं व्याख्या नहीं कर सकते क्यों कुछ अंडे ज़िपित (फ़ाइलें) होते हैं और कुछ निर्देशिकाओं रहे हैं, लेकिन मैं इस पेशकश कर सकते हैं: अगर आप ज़िपित अंडे नफरत (जैसे मैं करता हूँ) अपने ~/.pydistutils.cfg की [easy_install] अनुभाग में इस डाल:

 
zip_ok = false 
संबंधित मुद्दे