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
जब भी आप इस तरह टेडियम स्वचालित कर सकते हैं भयानक है।
दो कारण, और भी हो सकते हैं:
पीआईपी एक
uninstall
कमांड प्रदान करता हैयदि एक स्थापना मध्य में विफल हो जाती है, तो पीपी आपको एक स्वच्छ स्थिति में छोड़ देगी।
पाइप बाइनरी पैकेज स्थापित नहीं करेगा और विंडोज पर अच्छी तरह से परीक्षण नहीं किया जाएगा।
चूंकि विंडोज डिफ़ॉल्ट पाइप द्वारा एक कंपाइलर के साथ नहीं आता है, अक्सर वहां उपयोग नहीं किया जा सकता है। 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
करना चाहते हैं।