'अजगर सेटअप थ्रो' और 'पाइप स्थापित' के बीच अंतर


105

मेरे पास एक बाहरी पैकेज है जिसे मैं एक टार फाइल से अपने अजगर वर्चुअन में स्थापित करना चाहता हूं। पैकेज स्थापित करने का सबसे अच्छा तरीका क्या है?

मैंने 2 तरीके खोजे हैं जो यह कर सकते हैं:

  1. टार फ़ाइल को निकालें, फिर python setup.py installनिकाले गए निर्देशिका के अंदर चलाएं ।
  2. pip install packagename.tar.gzउदाहरण # 7 से https://pip.pypa.io/en/stable/reference/pip_install/#examples में

अगर इन 2 तरीकों से उन्हें करने में कोई अंतर है


5
का उपयोग करें pip। आप इसके साथ संकुल की स्थापना रद्द कर सकते हैं।
ब्लेंडर

"स्रोत से" के रूप में "वीसीएस चेकआउट", या के रूप में sdist?

"सर्वश्रेष्ठ" क्या है आपकी आवश्यकताओं पर निर्भर करता है! क्या आपने इनमें से किसी भी समाधान की कोशिश की है और उन्हें किसी तरह की कमी है? या आप पूछ रहे हैं कि इन दृष्टिकोणों में क्या अंतर है ?
मार्टिन एटकिंस

फेडोरा पर, उदाहरण के लिए, का उपयोग कर yum
पेरिअल

जवाबों:


109

सतह पर, दोनों एक ही काम करते हैं: python setup.py installया तो pip install <PACKAGE-NAME>कम से कम उपद्रव के साथ आपके लिए अपने अजगर पैकेज स्थापित करेंगे या करेंगे।

हालांकि, पाइप का उपयोग करने से कुछ अतिरिक्त लाभ मिलते हैं जो इसे उपयोग करने के लिए बहुत अच्छा बनाते हैं।

  • पाइप स्वचालित रूप से आपके लिए एक पैकेज के लिए सभी निर्भरताएं डाउनलोड करेगा। इसके विपरीत, यदि आप उपयोग करते हैं setup.py, तो आपको अक्सर मैन्युअल रूप से खोज करना पड़ता है और निर्भरता को डाउनलोड करना पड़ता है, जो थकाऊ है और निराशाजनक हो सकता है।
  • पाइप विभिन्न मेटाडेटा पर नज़र रखता है जो आपको आसानी से एक ही आदेश के साथ संकुल को अनइंस्टॉल और अपडेट करने देता है: pip uninstall <PACKAGE-NAME>और pip install --upgrade <PACKAGE-NAME>। इसके विपरीत, यदि आप एक पैकेज का उपयोग कर स्थापित करते हैं setup.py, तो आपको मैन्युअल रूप से हटाना होगा और यदि आप इसे से छुटकारा पाना चाहते हैं, तो हाथ से एक पैकेज बनाए रखें, जो संभावित त्रुटि-प्रवण हो सकता है।
  • अब आपको अपनी फ़ाइलों को मैन्युअल रूप से डाउनलोड नहीं करना होगा। यदि आप उपयोग करते हैं setup.py, तो आपको लाइब्रेरी की वेबसाइट पर जाना होगा, यह पता लगाना होगा कि इसे कहां से डाउनलोड करना है, फाइल को निकालना है, चलाना है setup.py... इसके विपरीत, पाइप स्वचालित रूप से पायथन पैकेज इंडेक्स (PyPi) को खोजेगा कि क्या पैकेज वहां मौजूद है, और स्वचालित रूप से आपके लिए पैकेज डाउनलोड, एक्सट्रेक्ट और इंस्टॉल करेगा। कुछ अपवादों के साथ, लगभग हर एकल उपयोगी पाइथन पुस्तकालय PyPi पर पाया जा सकता है।
  • पाइप आपको आसानी से पहियों को स्थापित करने देगा , जो कि पायथन वितरण का नया मानक है। पहियों के बारे में अधिक जानकारी
  • पाइप अतिरिक्त लाभ प्रदान करता है virtualenvजो उपयोग करने के साथ अच्छी तरह से एकीकृत होता है, जो एक ऐसा कार्यक्रम है जो आपको कई प्रोजेक्ट चलाने देता है जिसमें आपके कंप्यूटर पर परस्पर विरोधी पुस्तकालयों और पायथन संस्करणों की आवश्यकता होती है। अधिक जानकारी
  • पाइथन 2.x श्रृंखला पर पायथन 2.7.9 के रूप में पायथन के साथ पाईप को डिफ़ॉल्ट रूप से बंडल किया जाता है, और पायथन 3.x श्रृंखला पर पायथन 3.4.0 के रूप में, इसका उपयोग करना और भी आसान हो जाता है।

तो मूल रूप से, पाइप का उपयोग करें। यह केवल उपयोग करने पर सुधार प्रदान करता है python setup.py install


यदि आप पाइथन के पुराने संस्करण का उपयोग कर रहे हैं, तो अपग्रेड नहीं कर सकते हैं, और पाइप स्थापित नहीं है, तो आप निम्नलिखित चयन पर पाइप को स्थापित करने के बारे में अधिक जानकारी प्राप्त कर सकते हैं:

पाइप, अपने आप से, वास्तव में एक ट्यूटोरियल की आवश्यकता नहीं है। समय का 90%, एकमात्र कमान जिसकी आपको वास्तव में आवश्यकता है pip install <PACKAGE-NAME>। यदि आपने पाइप के साथ क्या कर सकते हैं, इसके विवरण के बारे में अधिक जानने में रुचि रखते हैं, तो कहा:

यह भी आमतौर पर सिफारिश की जाती है कि आप एक साथ पाइप और वर्चुअन का उपयोग करें। यदि आप पायथन के लिए एक शुरुआत कर रहे हैं, मैं व्यक्तिगत रूप से लगता है कि यह सिर्फ पाइप का उपयोग करने और विश्व स्तर पर संकुल स्थापित करने के साथ शुरू करने के लिए ठीक होगा, लेकिन अंततः मुझे लगता है कि आपको virtualenv का उपयोग करने के लिए संक्रमण करना चाहिए क्योंकि आप अधिक गंभीर परियोजनाओं से निपटते हैं।

यदि आप पाइप और virtualenv का एक साथ उपयोग करने के बारे में अधिक जानना चाहते हैं, तो देखें:


1
क्या पाइप इंस्टाल आंतरिक रूप से setup.py फ़ाइल को कॉल करता है?
चर

@ चर, "पहियों" से पाइप स्थापित, पूर्व-संकलित पैकेज, नहीं करता है, स्रोत से पाइप स्थापित करता है: पाइप स्थापित करें सिस्टम इंटरफ़ेस देखें
डेनिस

मेरे अनुभव में python setup.py installभी निर्भरता को डाउनलोड और इंस्टॉल करता है। क्या यह परिवर्तन तब से है जब आपने 2013 में यह उत्तर लिखा था।
केन विलियम्स

19

python setup.py installइंस्टॉल करने का एनालॉग है: यह गंतव्य निर्देशिकाओं के लिए फ़ाइलों को संकलित और कॉपी करने का एक सीमित तरीका है। इसका मतलब यह नहीं है कि यह वास्तव में आपके सिस्टम पर सॉफ़्टवेयर स्थापित करने का सबसे अच्छा तरीका है।

pipएक पैकेज मैनेजर है, जो पैकेज को स्थापित, अपग्रेड, लिस्ट और अनइंस्टॉल कर सकता है, जैसे परिचित पैकेज मैनेजर जैसे: dpkg, apt, yum, urpmi, portsआदि। हुड के तहत, यह चलेगा python setup.py install, लेकिन चीजों को कैसे और कहां स्थापित किया जाए , इसे नियंत्रित करने के लिए विशिष्ट विकल्पों के साथ।

संक्षेप में: उपयोग करें pip


2

सवाल एक स्थानीय टेरबॉल को स्थापित करने के लिए पसंदीदा विधि के बारे में है , जिसमें अजगर पैकेज है, जो PyPi जैसी अनुक्रमण सेवा में पैकेज अपलोड करने के लाभ के बारे में नहीं है

जैसा कि मुझे पता है कि कुछ सॉफ्टवेयर वितरक अपने पैकेज को PyPi पर अपलोड नहीं करते हैं, इसके बजाय डेवलपर्स को अपनी वेबसाइट से पैकेज डाउनलोड करने और इंस्टॉल करने के लिए कहते हैं।

अजगर setup.py स्थापित

यह काम कर सकता है लेकिन अनुशंसित नहीं है। यह आवश्यक नहीं है कि टारबॉल फ़ाइल को खोल दिया जाए और इसे setup.py फ़ाइल में चला जाए।

पाइप इंस्टॉल ../path/to/packagename.tar.gz

यह डिजाइन और पसंदीदा तरीका है। संक्षिप्त और PyPi- शैली पैकेज के साथ संरेखित करें।

इसके बारे में अधिक जानकारी pip installयहां पाई जा सकती है: https://pip.readthedocs.io/en/stable/reference/pip_install/


क्या हम पाइप-इन का उपयोग कर सकते हैं?
चर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.