python बनत पायथन पैकेज और अंडा जानकारी निर्देशिका



मुर्गी कितने दिन में अंडे देती है (1)

क्या कोई समझा सकता है कि अंडा-सूचना निर्देशिका उनके संबंधित मॉड्यूल से कैसे बंधी जाती है? उदाहरण के लिए, मेरे पास निम्न है:

/usr/local/lib/python2.5/site-packages/quodlibet/
/usr/local/lib/python2.5/site-packages/quodlibet-2.0.egg-info/

मुझे लगता है कि अंडा-सूचना निर्देशिका सेटअप मॉड्यूल (easy_install) के लिए दृश्यमान मॉड्यूल को बनाने के लिए है, है ना? यदि हां, तो सेटअपtools मॉड्यूल निर्देशिका में अंडे-जानकारी निर्देशिका को कैसे बांधता है?

मान लीजिए कि मैं सही रास्ते पर हूं, और उदाहरण के लिए ... अगर मैं सेटअप का उपयोग करने के लिए मेरा एक मौजूदा पैकेज बनाना चाहता हूं, तो क्या मैं मॉड्यूल निर्देशिका और अंडे-जानकारी निर्देशिका को साइट पर सिमलिंक कर सकता हूं- पैकेज निर्देशिका? मैंने अभी यह कोशिश की होगी, लेकिन मुझे यकीन नहीं है कि पैकेज सेटअप सेटअप के लिए दृश्यमान है या नहीं। बोनस अंक यदि आप मुझे यह भी बता सकते हैं कि इसका परीक्षण कैसे करें :)

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


.gg-info निर्देशिका केवल तभी बनाई जाती है जब अंडे को स्थापित करने के लिए -single-version-externally-प्रबंधित किया गया था। "आम तौर पर", एक अंडे स्थापित करना एक एकल निर्देशिका (या ज़िप फ़ाइल) बनाता है, जिसमें कोड और मेटाडेटा दोनों होते हैं।

pkg_resources (जो लाइब्रेरी है जो मेटाडेटा पढ़ता है) में एक फ़ंक्शन की require जिसे पैकेज के विशिष्ट संस्करण का अनुरोध करने के लिए उपयोग किया जा सकता है। "पुरानी शैली" के लिए, नियमित आयात, easy_install sys.path पर अंडे निर्देशिका प्राप्त करने के लिए एक .pth फ़ाइल हैक करता है। - सिंगल-वर्जन-बाहरी-प्रबंधित के लिए, यह हैकिंग आवश्यक नहीं है, क्योंकि केवल एक ही संस्करण स्थापित होगा (सिस्टम के पॅककिंग इंफ्रास्ट्रक्चर द्वारा, जैसे आरपीएम या डीपीकेजी)। अंडे की जानकारी अभी भी शामिल है, जिन अनुप्रयोगों का उपयोग require (या किसी अन्य pkg_resources बाध्यकारी तंत्र)।

यदि आप हार्ड-लिंकिंग द्वारा पैकेज स्थापित करना चाहते हैं, तो मैं "setup.py विकास" का उपयोग करने की अनुशंसा करता हूं। यह setuptools से एक कमांड है जो वास्तव में अंडे स्थापित नहीं करता है, लेकिन यह साइट-व्यापी उपलब्ध कराता है। ऐसा करने के लिए, यह एक अंडे-लिंक फ़ाइल बनाता है ताकि pkg_resources इसे पा सकें, और यह एक .pth फ़ाइल में हेरफेर करता है, ताकि नियमित आयात इसे ढूंढ सके।





egg