मैं पैकेजिंग पायथन अनुप्रयोगों की दुनिया में डाइविंग कर रहा हूं और भ्रम की इस स्थिति में प्रवेश करने में कामयाब रहा हूं जहां सभी अवधारणाओं और विकल्पों के कारण मेरा सिर घूमना शुरू हो गया है।distutils, distutils2, पीआईपी और आवश्यकताओं
प्रश्न:
मेरा लक्ष्य क्या है की जरूरत है? एक गिट सर्वर पर स्थित स्रोत से मेरी पायथन परियोजना को तैनात करें। तैनाती उपकरण को सभी निर्भरताओं को प्राप्त और स्थापित करना चाहिए, जिनमें से अधिकांश पीआईपी के माध्यम से उपलब्ध हैं और किसी को गिट के माध्यम से लाने और स्थापित करने की आवश्यकता है। अंतिम परिणाम पिप के माध्यम से स्थापित करने योग्य होना चाहिए, तो मैं के रूप में कुछ कर सकते हैं:
[~] git clone git://some/path/project.git
[~] pip install project/
प्रसंग: वर्तमान में मैं Distutils2 मैं क्या चाहते हो पाने के लिए कोशिश कर रहा हूँ, लेकिन यह है कि setup.py का उपयोग करके बनाया लगता है 'जेनरेट-सेटअप' कमांड पिप के साथ नहीं खेलता है।
मैं Distutils2 का उपयोग करना चाहता था क्योंकि यह सभी का सबसे भविष्य प्रमाण है। लेकिन सभी उपकरणों पर विभिन्न दस्तावेज सिर्फ भयानक (पुरानी और गलत जानकारी के साथ मिश्रित सटीक जानकारी) इस तरह से एक लड़का अपनी स्वच्छता पर सवाल उठाता है।
तो मुझे क्या करना चाहिए? Distutils और setup.py के लिए चिपकाओ? या क्या मुझे बिल्डआउट की पसंद को देखने की ज़रूरत है?
क्या उत्तरदाता कृपया यह बताएगा कि मुझे विशेष उपकरण के साथ क्या करना है (उदाहरण: Distutils2 का उपयोग करके अपना कोड तैनात करें, पीआईपी का उपयोग करके निर्भरता स्थापित करें, गिट निर्भरताओं के लिए एक स्क्रिप्ट लिखें और XYZ कर एक साथ सब कुछ गोंद लिखें)।
संपादित करें: मैं Distutils2 1.0a4 का उपयोग कर रहा हूं, जो दस्तावेज़ों के साथ असंगत लगता है।
संपादित 2: यह प्रश्न स्पष्ट करने के लिए प्रश्न को दोबारा सुधारने के लिए कि मेरा प्रश्न वास्तव में क्या है।
संपादित 3: यह पायथन के पैकेजिंग और वितरण टूलचेन को तोड़ने का मेरा चौथा प्रयास है। मैं अन्य लोगों को मेरे लिए अपना काम करने की कोशिश नहीं कर रहा हूं, हालांकि एक रूकी के लिए यह करना बहुत असंभव है कि एक विशेष उपकरण क्या करना है, जहां यह शुरू होता है और दूसरा सिरा होता है। विशेष रूप से उपकरण के बीच कार्यात्मक ओवरलैप की वजह से। मैं ऋषिओं द्वारा घिरा सिलिकॉन वैली में स्थित नहीं हूं जो मुझे रहस्यों में शुरू कर सकता है और सार्वजनिक रूप से उपलब्ध दस्तावेज का कोई उपयोग नहीं है।
अंतिम संपादन: हालांकि मैं वास्तव में इस प्रश्न को शुरू करते समय Buildout के साथ वर्चुअलएन्व को बदलने के बारे में सोच नहीं रहा था। लेकिन मेरे शोध करते समय मुझे कुछ एहसास हुआ जो मुझे हमेशा पता था, लेकिन कुल स्पष्टता में मेरे पास नहीं आया था। पाइथन पैकेजिंग और तैनाती स्वचालन के बारे में कई तरीके हैं। ऐसे कई टूल भी हैं जो आपको सामान प्राप्त करने में मदद कर सकते हैं। हालांकि, उपकरण के बीच महत्वपूर्ण कार्यात्मक ओवरलैप होने पर, टूलचेन कभी विकसित हो रहा है और इस प्रकार अब तक कोई स्पष्ट "मानक सर्वोत्तम अभ्यास" नहीं है। वितरण टूलचेन हथियार दौड़ अभी भी पूरी गर्मी में है और अभी तक कोई स्पष्ट विजेता उभरा नहीं है। यह हमें नोबस के लिए भ्रमित कर सकता है, जो उम्मीद करते हैं कि पाइथन में अधिकांश चीजें बस काम करती हैं। मैं इसके बाद क्या था (बिल्डआउट फैशन में distutils/setuptools + pip + virtualenv या Buildout के साथ अर्ध एकीकृत भी) निश्चित रूप से काम करने योग्य है, लेकिन यह बहुत अधिक समझ में नहीं आता है, क्योंकि यह संभव नहीं है - लेकिन क्योंकि कोई भी ऐसा नहीं करता है। यदि आपको इस स्तर के परिष्कार की आवश्यकता है, तो आपको प्रतिबद्ध करने की आवश्यकता है। व्यक्तिगत रूप से मैंने वर्चुअलएव को पीछे छोड़ने का फैसला किया है (इस परियोजना के लिए) और बिल्डआउट को गले लगाओ।
भले ही यह वास्तव में नहीं था जो मैं खोज रहा था, लिंक के आपके संग्रह ने आखिरकार बिल्डआउट के बारे में अपने सिर में खाली आवाजों को साफ़ करने में चाल बनाई। धन्यवाद। – JanezStupar