python Easy_install पर पाइप का उपयोग क्यों करें?




pip setuptools (8)

इयान बेकिंग से पीआईपी के अपने परिचय से :

पाइप मूल रूप से निम्न तरीकों से easy_install पर सुधार के लिए लिखा गया था

  • सभी संकुल अधिष्ठापन से पहले डाउनलोड किए जाते हैं। आंशिक रूप से पूर्ण स्थापना परिणामस्वरूप नहीं होती है।
  • कंसोल पर उपयोगी आउटपुट पेश करने के लिए देखभाल की जाती है।
  • कार्यों के कारणों का ट्रैक रखा जाता है। उदाहरण के लिए, यदि कोई पैकेज स्थापित किया जा रहा है, तो पीआईपी ट्रैक रखती है कि उस पैकेज की आवश्यकता क्यों थी।
  • त्रुटि संदेश उपयोगी होना चाहिए।
  • कोड अपेक्षाकृत संक्षेप और समेकित है, जिससे प्रोग्रामेटिक रूप से उपयोग करना आसान हो जाता है।
  • पैकेजों को अंडे के अभिलेखागार के रूप में स्थापित करने की आवश्यकता नहीं है, उन्हें फ्लैट स्थापित किया जा सकता है (अंडे मेटाडाटा को रखते हुए)।
  • अन्य संस्करण नियंत्रण प्रणाली (गिट, मर्कुरियल और बाज़ार) के लिए मूल समर्थन
  • संकुल की स्थापना रद्द करें।
  • आवश्यकताओं के निश्चित सेट को परिभाषित करने के लिए सरल और संकल्प के एक सेट को विश्वसनीय रूप से पुन: उत्पन्न करें।

एक tweet पढ़ता है:

Easy_install का उपयोग न करें, जब तक कि आप चेहरे पर खुद को छेड़छाड़ न करें। पीआईपी का प्रयोग करें।

Easy_install पर पाइप का उपयोग क्यों करें? क्या पीपीपीआई और पैकेज लेखकों के साथ गलती झूठ नहीं है? यदि कोई लेखक पीपीपीआई को बकवास स्रोत टैरबॉल अपलोड करता है (उदाहरण: गायब फाइलें, कोई setup.py), तो दोनों पाइप और easy_install विफल हो जाएंगे। कॉस्मेटिक मतभेदों के अलावा, पाइथन लोग (जैसे उपर्युक्त ट्वीट में) क्यों आसानी से आसान पाइप पर पाइप का पक्ष लेते हैं?

(आइए मान लें कि हम वितरण पैकेज से easy_install के बारे में बात कर रहे हैं, जिसे समुदाय द्वारा बनाए रखा जाता है)


दो कारण, और भी हो सकते हैं:

  1. पीआईपी एक uninstall कमांड प्रदान करता है

  2. यदि एक स्थापना मध्य में विफल हो जाती है, तो पीपी आपको एक स्वच्छ स्थिति में छोड़ देगी।


pip के पक्ष में अभी तक एकमात्र गैर-कारण है क्योंकि यह नई गर्मी है और भविष्य में इसका उपयोग जारी रहेगा।

द हिचहिकर गाइड टू पैकेजिंग v1.0 में पैकेजिंग सेक्शन के वर्तमान राज्य से नीचे इन्फोग्राफ़िक - दिखाता है कि setuptools / easy_install भविष्य में दूर हो जाएगा।

वितरण के दस्तावेज से एक और इन्फोग्राफिक यहां दिखा रहा है कि Setuptools और easy_install को नई हॉटनेस- वितरित और pip द्वारा प्रतिस्थापित किया जाएगा। जबकि pip अभी भी नई Setuptools , 2013 में Setuptools v0.7 के रिलीज के साथ Setuptools साथ विलय वितरित करें


फजीमैन के जवाब के अतिरिक्त:

पाइप बाइनरी पैकेज स्थापित नहीं करेगा और विंडोज पर अच्छी तरह से परीक्षण नहीं किया जाएगा।

चूंकि विंडोज डिफ़ॉल्ट पाइप द्वारा एक कंपाइलर के साथ नहीं आता है, अक्सर वहां उपयोग नहीं किया जा सकता है। easy_install विंडोज के लिए बाइनरी पैकेज स्थापित कर सकते हैं।

विंडोज़ पर एक चाल है:

  • बाइनरी बनाने से बचने के लिए आप बाइनरी पैकेज स्थापित करने के लिए easy_install <package> का उपयोग कर सकते हैं

  • आप pip uninstall <package> उपयोग कर सकते हैं भले ही आपने easy_install का उपयोग किया हो।

यह सिर्फ एक काम है जो खिड़कियों पर मेरे लिए काम करता है। असल में मैं हमेशा पाइप का उपयोग करता हूं यदि कोई द्विआधारी शामिल नहीं है।

वर्तमान पाइप डॉकू देखें: http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install

मैं मेलिंग सूची पर पूछूंगा कि इसके लिए क्या योजना बनाई गई है।

नवीनतम अपडेट यहां दिया गया है:

बाइनरी स्थापित करने का नया समर्थित तरीका wheel होने जा रहा है! यह अभी तक मानक में नहीं है, लेकिन लगभग। वर्तमान संस्करण अभी भी एक अल्फा है: 1.0.0 ए 1

https://pypi.python.org/pypi/wheel

http://wheel.readthedocs.org/en/latest/

मैं अंडे के बजाए wheel का उपयोग करके PySide लिए ओएस एक्स इंस्टॉलर बनाकर wheel का परीक्षण PySide । वापस आ जाएगा और इसके बारे में रिपोर्ट करेंगे।

चीयर्स - क्रिस

एक त्वरित अद्यतन:

wheel लिए संक्रमण लगभग खत्म हो गया है। अधिकांश पैकेज wheel का समर्थन कर रहे हैं।

मैंने PySide लिए पहियों का निर्माण करने का वादा किया, और मैंने पिछली गर्मियों में ऐसा किया। बहुत अच्छा काम करता है!

HINT: कुछ डेवलपर्स व्हील प्रारूप का समर्थन करने के लिए अब तक विफल रहे हैं, क्योंकि वे setuptools द्वारा setuptools को प्रतिस्थापित करना भूल जाते हैं। अक्सर, इस शब्द को setup.py में बदलकर ऐसे संकुल को कनवर्ट करना आसान है।


आवश्यकताएँ फाइलें

गंभीरता से, मैं इसे हर दिन वर्चुअलनेव के साथ संयोजन के रूप में उपयोग करता हूं।

क्विक डिप्लेन्सी मैनेजमेंट ट्यूटोरियल, GUYS

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

Heroku के दस्तावेज़ से https://devcenter.heroku.com/articles/python

आप वर्चुअल वातावरण बनाते हैं, और इसका उपयोग करने के लिए अपना खोल सेट करते हैं। (बैश / * निक्स निर्देश)

virtualenv env
source env/bin/activate

अब इस शैल के साथ चलने वाली सभी पायथन स्क्रिप्ट इस पर्यावरण के संकुल और कॉन्फ़िगरेशन का उपयोग करेंगे। अब आप अपनी मशीन पर इसे वैश्विक स्तर पर स्थापित करने की आवश्यकता के बिना स्थानीय स्तर पर एक पैकेज स्थापित कर सकते हैं।

pip install flask

अब आप जानकारी को डंप कर सकते हैं कि किस पैकेज के साथ स्थापित किया गया है

pip freeze > requirements.txt

यदि आपने उस फ़ाइल को संस्करण नियंत्रण में चेक किया है, जब कोई और आपका कोड प्राप्त करता है, तो वे अपना स्वयं का वर्चुअल वातावरण सेट कर सकते हैं और सभी निर्भरताओं को इंस्टॉल कर सकते हैं:

pip install -r requirements.txt

जब भी आप इस तरह टेडियम स्वचालित कर सकते हैं भयानक है।


बस एक विशेष मामले से मुलाकात की जिसे मुझे pip बजाय easy_install का उपयोग करना पड़ा, या मुझे सीधे स्रोत कोड खींचना होगा।

पैकेज GitPython , GitPython में संस्करण बहुत पुराना है, जो 0.1.7 , जबकि easy_install से एक नवीनतम है जो 0.3.2.rc1

मैं Python 2.7.8 का उपयोग कर रहा हूँ। मैं easy_install और pip के easy_install तंत्र के बारे में निश्चित नहीं हूं, लेकिन कम से कम कुछ संकुल के संस्करण एक-दूसरे से भिन्न हो सकते हैं, और कभी-कभी easy_install नए संस्करण वाले एक होते हैं।

easy_install GitPython

पाइप बाइनरी पैकेज स्थापित नहीं करेगा और विंडोज पर अच्छी तरह से परीक्षण नहीं किया जाएगा।

चूंकि विंडोज डिफ़ॉल्ट पाइप द्वारा एक कंपाइलर के साथ नहीं आता है, अक्सर वहां उपयोग नहीं किया जा सकता है। easy_install विंडोज के लिए बाइनरी पैकेज स्थापित कर सकते हैं


यहां के कई उत्तर 2015 के लिए पुराने हैं (हालांकि प्रारंभ में डैनियल रोज़मन से स्वीकार्य एक नहीं है)। यहां चीजों की वर्तमान स्थिति है:

  • बाइनरी पैकेज अब पहियों ( .whl फाइलों) के रूप में वितरित किए जाते हैं-केवल पीपीपीआई पर नहीं, बल्कि विंडोज़ के लिए क्रिस्टोफ गोहले के एक्सटेंशन पैकेज जैसे तीसरे पक्ष के भंडारों में। pip पहियों को संभाल सकता है; easy_install नहीं कर सकता।
  • वर्चुअल वातावरण (जो 3.4 के साथ अंतर्निहित आते हैं, या virtualenv साथ 2.6 + / 3.1 + में जोड़ा जा सकता है) एक बहुत ही महत्वपूर्ण और प्रमुख उपकरण बन गया है (और आधिकारिक दस्तावेज़ों में अनुशंसित); वे बॉक्स के बाहर pip शामिल हैं, लेकिन easy_install साथ ठीक से काम भी नहीं करते हैं।
  • distribute पैकेज जिसमें easy_install शामिल है अब बनाए रखा नहीं गया है। setuptools पर इसके सुधार setuptools में वापस विलय हो गया। distribute स्थापित करने का प्रयास करने के बजाय बस setuptools स्थापित करें।
  • easy_install ही केवल अर्ध-बनाए रखा है।
  • उन सभी मामलों में जहां pip को एक अनपॅक किए गए स्रोत पेड़ से, एक डीवीसीएस रेपो आदि से आसान-स्थापना-स्थापना करने के लिए कम किया जाता था-लंबे समय से चला गया है; आप pip install . कर सकते हैं pip install . , pip install git+https://
  • pip python.org से आधिकारिक पायथन 2.7 और 3.4+ पैकेज के साथ आता है, और यदि आप स्रोत से बनाते हैं तो एक pip बूटस्ट्रैप डिफ़ॉल्ट रूप से शामिल किया जाता है।
  • पैकेजों को स्थापित करने, उपयोग करने और बनाने के लिए प्रलेखन के विभिन्न अपूर्ण बिट्स को पायथन पैकेजिंग उपयोगकर्ता मार्गदर्शिका द्वारा प्रतिस्थापित किया गया है। पाइथन मॉड्यूल स्थापित करने पर पाइथन का अपना दस्तावेज अब इस उपयोगकर्ता मार्गदर्शिका को रोकता है, और स्पष्ट रूप से "पसंदीदा इंस्टॉलर प्रोग्राम" के रूप में pip को कॉल करता है।
  • पिछले कुछ वर्षों में अन्य नई सुविधाओं को pip में जोड़ा गया है जो कभी भी easy_install में नहीं होंगे। उदाहरण के लिए, pip एक आवश्यकता फ़ाइल बनाकर और फिर प्रत्येक तरफ एक ही कमांड के साथ स्थापित करके अपने साइट-पैकेज को क्लोन करना आसान बनाता है। या इन-हाउस डेवलपमेंट के लिए उपयोग करने के लिए अपनी आवश्यकताओं को स्थानीय रिपो में परिवर्तित करने के लिए। और इसी तरह।

2015 में easy_install का उपयोग करने का एकमात्र अच्छा कारण ओएस एक्स 10.5-10.8 के साथ ऐप्पल के पूर्व-स्थापित पायथन संस्करणों का उपयोग करने का विशेष मामला है। 10.5 के बाद से, ऐप्पल में easy_install शामिल है, लेकिन 10.10 के रूप में वे अभी भी pip शामिल नहीं है। 10.9+ के साथ, आपको अभी भी get-pip.py उपयोग करना चाहिए, लेकिन 10.5-10.8 के लिए, इसमें कुछ समस्याएं हैं, इसलिए आसानी से sudo easy_install pip को आसान बनाना आसान है। (सामान्य रूप से, easy_install pip एक बुरा विचार है; यह केवल ओएस एक्स 10.5-10.8 के लिए है जिसे आप करना चाहते हैं।) इसके अलावा, 10.5-10.8 में readline शामिल है कि easy_install जानता है कि कैसे चारों ओर घूमना है लेकिन pip नहीं है, इसलिए यदि आप इसे अपग्रेड करना चाहते हैं तो आप sudo easy_install readline करना चाहते हैं।





pypi