इस प्रश्न का वास्तव में एक भी "उत्तर" नहीं है, लेकिन निश्चित रूप से कुछ उपयोगी अवधारणाएं हैं जो आपको निर्णय लेने में मदद कर सकती हैं।
आपके उपयोग के मामले में पहले प्रश्न का उत्तर देने की आवश्यकता है "क्या मैं सिस्टम पायथन का उपयोग करना चाहता हूं?" यदि आप अपने ऑपरेटिंग सिस्टम के साथ वितरित पायथन का उपयोग करना चाहते हैं, तो apt-get install विधि का उपयोग करना ठीक हो सकता है। हालाँकि, ऑपरेटिंग सिस्टम वितरण विधि के आधार पर, आपको अभी भी कुछ और प्रश्न पूछने होंगे, जैसे "क्या मैं इस पैकेज के कई संस्करण स्थापित करना चाहता हूं?" यदि उत्तर हाँ है, तो शायद यह उपयुक्त नहीं है कि उपयुक्त चीज़ का उपयोग करें। Dpkg बहुत ज्यादा फाइल सिस्टम के मूल में एक संग्रह को अनटार करेगा, इसलिए यह सुनिश्चित करने के लिए पैकेज अनुरक्षक पर निर्भर है कि पैकेज बहुत कम मान्यताओं के तहत सुरक्षित रूप से स्थापित होता है। अधिकांश डेबियन पैकेजों के मामले में, मैं मान लूंगा (कोई मुझे यहां ठीक करने के लिए स्वतंत्र महसूस कर सकता है) कि वे बस अनटार करें और एक शीर्ष पैकेज पैकेज प्रदान करें।
उदाहरण के लिए, मान लें कि पैकेज "virtualenv" है, तो आप समाप्त करेंगे /usr/lib/python2.x/site-packages/virtualenv
। यदि आप इसे स्थापित करते हैं, easy_install
तो आपको कुछ ऐसा मिलेगा जो /usr/lib/python2.x/site-packages/virtualenv.egg-link
इंगित कर /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
सकता है कि एक निर्देशिका या ज़िपित अंडा हो सकता है। पिप कुछ ऐसा ही करता है, हालांकि यह अंडे का उपयोग नहीं करता है और इसके बजाय शीर्ष स्तर के पैकेज को सीधे lib
निर्देशिका में रखेगा ।
मैं रास्तों पर रवाना हो सकता हूं, लेकिन बात यह है कि प्रत्येक विधि विभिन्न आवश्यकताओं को ध्यान में रखती है। यही कारण है कि virtualenv जैसे उपकरण सहायक होते हैं क्योंकि वे आपको अपने पायथन पुस्तकालयों को सैंडबॉक्स करने की अनुमति देते हैं, ताकि आपके पास पुस्तकालयों और संस्करणों की आवश्यकता वाले किसी भी संयोजन हो सकें।
सेटप्टूल भी संकुल को मल्टीवर्जन के रूप में स्थापित करने की अनुमति देता है जिसका अर्थ है कि एक विलक्षण मो dule_name.egg-link
निर्मित नहीं है। उन पैकेजों को आयात करने के लिए आपको pkg_resources और __import__
फ़ंक्शन का उपयोग करना होगा।
अपने मूल प्रश्न पर वापस जाएं, यदि आप सिस्टम अजगर से खुश हैं और विभिन्न अनुप्रयोगों के लिए वातावरण बनाने के लिए virtualenv और पाइप का उपयोग करने की योजना बना रहे हैं, तो apt-get का उपयोग करके सिस्टम स्तर पर virtualenv और / या pip को स्थापित करना पूरी तरह से उचित लगता है। यद्यपि सावधानी का एक शब्द यह है कि यदि आप अपने वितरण पायथन को अपग्रेड करने की योजना बनाते हैं, तो यदि आपके सिस्टम साइट पैकेजों से वापस जुड़ा हुआ है तो आपके वर्चुअन के माध्यम से एक लहर प्रभाव हो सकता है।
मुझे यह भी उल्लेख करना चाहिए कि इन विकल्पों में से कोई भी अन्य की तुलना में स्वाभाविक रूप से बेहतर नहीं है। वे बस अलग-अलग तरीके अपनाते हैं। सिस्टम संस्करण का उपयोग करना पायथन अनुप्रयोगों को स्थापित करने का एक शानदार तरीका है, फिर भी यह पायथन के साथ विकसित करने का एक बहुत ही कठिन तरीका हो सकता है। वर्चुअनव्यू के बिना आसान संस्थापन और सेटपूल एक दुनिया में बहुत सुविधाजनक है, लेकिन यदि आपको एक ही पुस्तकालय के विभिन्न संस्करणों का उपयोग करने की आवश्यकता है, तो यह भी नगण्य हो जाता है। पिप और virtualenv वास्तव में एक आभासी मशीन की तरह काम करते हैं। चीजों को साथ-साथ स्थापित करने के लिए देखभाल करने के बजाय, आप बस एक नया वातावरण बनाते हैं। यहाँ नकारात्मक पक्ष यह है कि 30+ वर्चुअन के बाद में आप काफी डिस्क्सपेस का उपयोग कर सकते हैं और आपके फाइल सिस्टम को बंद कर सकते हैं।
जैसा कि आप देख सकते हैं, कई विकल्पों के साथ यह कहना मुश्किल है कि किस विधि का उपयोग करना है, लेकिन अपने उपयोग के मामलों में थोड़ी जांच के साथ, आपको एक विधि खोजने में सक्षम होना चाहिए जो काम करता है।
ez_setup.py
पाइप पाने के "हल्के संस्करण" के लिए बस पकड़ रहे हैं । मैं ऐसा ही करता हूं लेकिन यह डर है कि यह निकट भविष्य में टूट जाएगा और मैं यहां फिर से फंस जाऊंगा (जैसे मैं हमेशा करता हूं)