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




pip setuptools (6)

अद्यतन: setuptools ने कुछ विचारों के रूप में, दूसरी तरफ के विपरीत distribute अवशोषित किया है। setuptools नवीनतम distutils परिवर्तन और पहिया प्रारूप के साथ अद्यतित है। इसलिए, easy_install और pip अब बराबर पैर पर कम या कम हैं।

स्रोत: absorbed

एक tweet पढ़ता है:

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

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

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


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

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

क्विक डिप्लेन्सी मैनेजमेंट ट्यूटोरियल, 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

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


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

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

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


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

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


बस एक विशेष मामले से मुलाकात की जिसे मुझे 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

यहां के कई उत्तर 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