python पायथन वितरण के लिए उपयोग के मामलों क्या हैं?



pip setuptools (1)

मैं पाइथन पैकेज के लिए एक वितरण विकसित कर रहा हूं जो मैं लिख रहा हूं इसलिए मैं इसे पीईपीआई पर पोस्ट कर सकता हूं। यह मेरी पहली बार distutils, setuptools, वितरित, पीआईपी, setup.py और सभी के साथ काम कर रहा है और मैं सीखने वाली अवस्था के साथ थोड़ा सा संघर्ष कर रहा हूं जो कि अनुमानित तुलना में थोड़ी अधिक तेज है :)

मुझे कुछ परीक्षण डेटा फ़ाइलों को टारबॉल में शामिल करने में थोड़ा परेशानी हो रही थी, setup.py में data_files पैरामीटर में उन्हें निर्दिष्ट करके जब तक मैं एक अलग पोस्ट में नहीं आया हूं, जो मुझे data_files फ़ाइल की ओर इशारा करता था। बस फिर मैंने इस धारणा को बंद कर दिया कि क्या आप टारबॉल / ज़िप में शामिल हैं (MANIFEST.in का उपयोग करते हुए) और जो उपयोगकर्ता के पायथन वातावरण में स्थापित हो जाता है जब वह easy_install करते हैं या जो कुछ भी (आप setup.py में निर्दिष्ट के आधार पर) दो हैं बहुत अलग चीजें; आमतौर पर टर्बल में बहुत अधिक होने के बजाय वास्तव में स्थापित हो जाता है

यह तुरंत मेरे लिए एक कोड-गंध और प्राप्ति की शुरुआत हुई कि वितरण के लिए एक से अधिक उपयोग के मामले हों; लाइब्रेरी स्थापित करने के लिए easy_install या pip का उपयोग करते हुए मुझे वास्तव में केवल एक ही भाग में शामिल किया गया था। और फिर मुझे एहसास हुआ कि मैं काम उत्पाद विकसित कर रहा था, जहां मुझे अंतिम उपयोगकर्ताओं के बारे में केवल एक आंशिक समझ थी जो मैं विकसित कर रहा था।

तो मेरा सवाल यह है: "पायथन वितरण में उपयोग करने के अलावा पायथन वितरण के उपयोग के मामले क्या हैं? मैं इस डिस्ट्रीब्यूशन के साथ कौन और कौन से सेवा करता हूं और वे किस बारे में सबसे अधिक देखभाल करते हैं?"

यहां कुछ ऐसे काम करने वाले मुद्दों का उल्लेख किया गया है जिन पर मुझे जवाब नहीं मिला है।

  • क्या स्त्रोत वितरण में स्रोत नियंत्रण (जीआईटी) के अंतर्गत सब कुछ शामिल करना एक समझदार बात है? जिथूब की उम्र में, क्या किसी को पूर्ण प्रोजेक्ट स्रोत तक पहुंच प्राप्त करने के लिए कोई स्रोत वितरण डाउनलोड करता है? या क्या मैं अपने गिटौब रिपो के लिए एक लिंक पोस्ट कर सकता हूं? क्या सब कुछ वितरण वितरण ब्लोट और लोगों को जो इसे स्थापित करना चाहते हैं डाउनलोड करने के लिए लंबे समय तक लेने में शामिल नहीं होगा?

  • मैं readthedocs.org पर प्रलेखन होस्ट करने जा रहा हूं। स्रोत वितरण में डॉक्स के एचटीएमएल संस्करणों को शामिल करने के लिए क्या यह कोई मायने रखता है?

  • क्या कोई स्रोत वितरण पर परीक्षण चलाने के लिए python setup.py test का उपयोग करता है? यदि हां, तो वे क्या भूमिका निभाते हैं और किस स्थिति में हैं? मुझे नहीं पता कि मुझे उस काम को लेकर परेशान होना चाहिए और यदि मैं करता हूं, तो इसे किसके लिए काम करना चाहिए।

https://code.i-harness.com


कुछ चीजें जिन्हें आप स्रोत वितरण में शामिल करना चाहते हैं, लेकिन संभवतः इंस्टॉल नहीं हो सकते हैं:

  • पैकेज का लाइसेंस
  • एक परीक्षण सूट
  • प्रलेखन (संभवतया स्रोत के अलावा एचटीएमएल जैसी संसाधित रूप)
  • संभवत: स्रोत वितरण का निर्माण करने के लिए उपयोग किए जाने वाले किसी अतिरिक्त स्क्रिप्ट

प्रायः यह बहुसंख्यक या सभी जो आप वर्जन नियंत्रण में प्रबंधित कर रहे हैं और संभवतः कुछ जेनरेटेड फ़ाइलों में से होगा।

मुख्य कारण यह है कि जब ये फाइलें ऑनलाइन या संस्करण नियंत्रण के माध्यम से उपलब्ध होंगी, तो लोगों को पता चलेगा कि उनके पास डॉक्स या टेस्ट का संस्करण है जो वे चल रहे कोड से मेल खाते हैं।

यदि आप केवल ऑनलाइन डॉक्स के सबसे हाल के संस्करण की मेजबानी करते हैं, तो हो सकता है कि वे किसी ऐसे व्यक्ति के लिए उपयोगी न हों, जिसे किसी कारण के लिए पुराने संस्करण का उपयोग करना पड़ता है। और संस्करण नियंत्रण में टिप पर परीक्षण सूट स्रोत वितरण में कोड के संस्करण के साथ संगत नहीं हो सकता (उदाहरण के लिए, यदि यह तब से फीचर्स जोड़ा गया है)। डॉक्स या परीक्षणों का सही संस्करण प्राप्त करने के लिए, उन्हें संस्करण नियंत्रण के माध्यम से कंघी बनाने की ज़रूरत होगी जो स्रोत वितरण (डेवलपर्स के पेड़ को टैग करने से परेशान करते हुए) से संबंधित एक टैग की तलाश में है। स्रोत वितरण में उपलब्ध फाइल होने से इस समस्या से बचा जाता है।

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





distribute