पाइप लाइन और वर्चुअन सिस्टमवाइड स्थापित करने के लिए आधिकारिक "पसंदीदा" तरीका क्या है?


86

क्या यह ऐसा है, जिसे लोग अक्सर सुझाते हैं:

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv

या यह, जो मुझे http://www.pip-installer.org/en/latest/installing.html से मिला है :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

या कुछ पूरी तरह से अलग?

जवाबों:


93

यदि आप नवीनतम पायथन स्थापित कर सकते हैं (2.7.9 और ऊपर) पिप अब इसके साथ बंडल किया गया है। देखें: https://docs.python.org/2.7//installing/index.html
यदि नहीं:
अपडेट (जारी नोटों से):

V1.5.1 के साथ शुरू होने पर, पाइप को get-pip.py चलाने से पहले सेटप्टूल की आवश्यकता नहीं होती है। इसके अतिरिक्त, अगर सेटटॉपूल (या डिस्ट्रीब्यूशन) पहले से इंस्टॉल नहीं है, तो get-pip.py आपके लिए सेटप्टूल स्थापित करेगा।

अब मैं नियमित रूप से दौड़ता हूं:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

यहाँ आधिकारिक स्थापना निर्देश हैं: http://pip.readthedocs.org/en/latest/installing.html#install-pip

EDIT 25-Jul-2013:
सेटप्टूल के लिए परिवर्तित URL इंस्टॉल।

EDIT 10-Feb-2014:
हटाए गए सेटटूपल्स इंस्टॉल (धन्यवाद @Ciantic)

EDIT 26-Jun-2014:
अपडेट किया गया URL फिर से (साभार @LarsH)

EDIT 1-Mar-2015:
पिप को अब अजगर के साथ बांधा गया है


1
आप कहां / कैसे सेटअपटूल-0.8 स्थापित करते हैं? लगता है कि आप ez_setup.pyपाइप पाने के "हल्के संस्करण" के लिए बस पकड़ रहे हैं । मैं ऐसा ही करता हूं लेकिन यह डर है कि यह निकट भविष्य में टूट जाएगा और मैं यहां फिर से फंस जाऊंगा (जैसे मैं हमेशा करता हूं)
स्टीवन लू

3
आह, ऐसा लगता है जैसे निर्देश यहाँ कहते हैं कि जैसा आप कहते हैं, वैसा ही करें। तो कोई बात नहीं।
स्टीवन लू

4
ऐसा करने के लिए नया (?) तरीका है, यह पाइप और सेप्टुल्फ को स्वचालित रूप से स्थापित करता है: wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py और फिर python get-pip.py(sudo की आवश्यकता हो सकती है)
Ciantic

3
अब get-pip.py का URL बदल गया लगता है https://bootstrap.pypa.io/get-pip.py। शायद आधिकारिक निर्देशों से लिंक करने के लिए बेहतर है।
लार्स

2
PS इस उत्तर के लिए धन्यवाद - इसने मुझे पाइप स्थापित करने में मदद की।
लार्स

21

http://www.pip-installer.org/en/latest/installing.html वास्तव में इस प्रश्न का विहित उत्तर है।

विशेष रूप से, सिस्टमवाइड निर्देश हैं:

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

प्रश्न में उद्धृत अनुभाग virtualenvप्रणालीबद्ध लोगों के बजाय निर्देश है। easy_installनिर्देश लंबे समय तक के लिए चारों ओर गया है, लेकिन यह इसे उस तरह से किसी भी अधिक करने के लिए आवश्यक नहीं है।


उस पृष्ठ पर व्यवस्थित निर्देशों और virtualenvप्रश्न में उद्धृत निर्देशों के बीच अंतर को स्पष्ट करने के लिए संपादित किया गया।
ncoghlan

1
अपडेट: वितरण पाइप के लिए अब काम नहीं करता है! देखें stackoverflow.com/a/17601159/78234
ताल वेइस

1
कृपया ध्यान दें कि लिंक किए गए पृष्ठ पर दिए गए निर्देश अब यहाँ दिए गए निर्देशों से मेल नहीं खाते हैं। केवल आधिकारिक पृष्ठ पर जाना और जैसा वे कहते हैं वैसा करना सबसे अच्छा है (और पहली बार में किसी ने उन पर संदेह क्यों किया?)
नील ट्रफ

इस उत्तर में वर्णित दृष्टिकोण पुराना है और अब काम नहीं करता है।
cel

16

यह उत्तर ट्विटर पर @webology से आता है:

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install --upgrade pip virtualenv virtualenvwrapper

मेरे जोड़े गए नोट:

  • Mac / Windows (और Linux पर यदि apt रेपो पुराना हो गया है) तो आप http://pypi.python.org/pypi/setuptools से सेटटाउपल्स डाउनलोड करने के साथ पहला कदम बदलेंगे
  • विंडोज पर आपको virtualenvwrapper को अंतिम चरण से छोड़ना होगा और इसे किसी भी तरह मैन्युअल रूप से इंस्टॉल करना होगा। मुझे नहीं पता कि सिग्विन के बिना ऐसा करने का कोई तरीका है, लेकिन मुझे उम्मीद है कि।

1
यदि स्थिति यह है कि आप पाइप और वर्चुअनव के सिस्टम-वाइड इंस्टॉलेशन चाहते हैं, तो यह वही है जो मैं आमतौर पर करता हूं। पाइप डॉक्स से निर्देश जो प्रश्न में दूसरे विकल्प के रूप में दिए गए हैं, इस आधार पर हैं कि हम सिस्टम-वाइड कुछ भी स्थापित करने से बच रहे हैं।
कार्ल मेयर

3
आप पहले दो आदेशों को बदल सकते हैं $ sudo apt-get install python-pip। अजगर-पाइप स्थापित करने से भी अजगर-सेटपूल स्थापित होंगे।
डेनिस

4

उबंटू 12.04 पर मुझे पैकेज मैनेजर का उपयोग करने का सौभाग्य मिला है:

sudo apt-get install python-pip virtualenvwrapper

1
पैक किए गए संस्करण बहुत पुराने हैं। 12.04 प्रदान करता है python-pip 1.0-1build1जो 2011 की शुरुआत में जारी किया गया था और virtualenvwrapper 2.11.1-21जनवरी 2012 को जारी किया गया था । @ रिचर्ड वॉन्स का जवाब आपको नवीनतम मिलेगा।
जेकोटन

3

कोई पसंदीदा तरीका नहीं है - सब कुछ आपकी आवश्यकताओं पर निर्भर करता है। अक्सर आपको सिस्टम पर विभिन्न पायथन दुभाषियों की आवश्यकता होती है जो भी कारण हो। इस मामले में आपको प्रत्येक दुभाषिया के लिए व्यक्तिगत रूप से सामान स्थापित करने की आवश्यकता है। इसके अलावा: मैं पहले से पैक किए गए सामान के आधार पर खुद को सामान स्थापित करना पसंद करता हूं, कभी-कभी समस्या पैदा करता है - लेकिन यह केवल एक संभव विकल्प है।


मैं विशेष रूप से पसंदीदा पद्धति के बारे में पूछ रहा हूं क्योंकि मैं इन निर्देशों को 20 लोगों के वर्ग को देने जा रहा हूं और उन्हें गुमराह नहीं करना चाहता।
कॉफी-ग्राइंडर

3

इस प्रश्न का वास्तव में एक भी "उत्तर" नहीं है, लेकिन निश्चित रूप से कुछ उपयोगी अवधारणाएं हैं जो आपको निर्णय लेने में मदद कर सकती हैं।

आपके उपयोग के मामले में पहले प्रश्न का उत्तर देने की आवश्यकता है "क्या मैं सिस्टम पायथन का उपयोग करना चाहता हूं?" यदि आप अपने ऑपरेटिंग सिस्टम के साथ वितरित पायथन का उपयोग करना चाहते हैं, तो 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+ वर्चुअन के बाद में आप काफी डिस्क्सपेस का उपयोग कर सकते हैं और आपके फाइल सिस्टम को बंद कर सकते हैं।

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



2

चूंकि virtualenvs में डिफ़ॉल्ट रूप से पाइप होते हैं, मैं लगभग कभी भी विश्व स्तर पर पाइप स्थापित नहीं करता हूं। मैं क्या करता हूं और अधिक देख रहा हूं:

$ sudo apt-get install python-setuptools
$ curl -O http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py
$ sudo easy_install virtualenv

फिर मैं अपनी पसंद के अनुसार virtualenvwrapper को स्थापित करने और स्थापित करने के लिए आगे बढ़ता हूं और मैं जाता हूं। जेरेमी एनेट के वर्चुअन-ब्यूरिटो पर एक नज़र डालना भी सार्थक हो सकता है:

https://github.com/brainsik/virtualenv-burrito


पकड़ने के लिए धन्यवाद। ;)
डेविड गोल्डिन

3
आप अजगर-सेप्टूल से परेशान क्यों हैं और फिर वितरित करते हैं जब आप सीधे वितरित करने के लिए जा सकते हैं?
लैम्बेक

@lambacck क्या आप पोस्ट कर सकते हैं जो आप एक अलग उत्तर में वर्णन कर रहे हैं (भले ही यह दोहराव लगता हो)?
कॉफ़ी-ग्राइंडर

2
यह उल्लेख करने के लिए कि किसी भी हाल ही में उबंटू (और डेबियन भी? निश्चित नहीं) "पायथन-सेप्टुपूल" पैकेज वास्तव में वितरित है, इसलिए आप विशिष्ट वितरण कदम को छोड़ सकते हैं।
कार्ल मेयर

@ कॉफी-ग्राइंडर वितरित सेटपूल का एक कांटा है और इसके लिए समान कार्यक्षमता (और अधिक) प्रदान करता है। जब तक python-setuptools IS वितरित नहीं है, तब तक "apt-get install python-setuptools" करने से परेशान न हों (जैसा कि कार्ल इंगित करता है कि हो सकता है) जिस स्थिति में चरण 2 छोड़ें और 3.
lambacck

2

@ericholscher ट्विटर पर कहता है, "आधिकारिक डॉक्स में एक .."

यह एक शानदार बिंदु है, आपको वही करना चाहिए जो डॉक्स कहता है।

Http://www.pip-installer.org/en/latest/installing.html पर आधिकारिक पाइप स्थापना निर्देशों से उद्धृत :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

। यह सबसे अच्छा विकल्प है अगर आप वितरण पैकेज पर भरोसा नहीं करना चाहते हैं।
तोबू

2

डिस्ट्रो पैकेज से शुरू, आप या तो उपयोग कर सकते हैं:

sudo apt-get install python-virtualenv

जो आपको virtualenvs, या बनाने देता है

sudo apt-get install python{,3}-pip

जो आपको अपने घर निर्देशिका के लिए मनमाने संकुल स्थापित करने देता है।

यदि आप virtualenv के लिए उपयोग किए जाते हैं, तो पहला कमांड आपको वह सब कुछ देता है जो आपको चाहिए (याद रखें, पाइप बंडल है और आपके द्वारा बनाए गए किसी भी virtualenv में इंस्टॉल किया जाएगा)।

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

pip install --user something

और कुछ डाल दिया

PATH=~/.local/bin:$PATH

अपने में ~/.bashrc


यदि आपका डिस्ट्रो प्राचीन है और आप इसके पैकेज का उपयोग नहीं करना चाहते हैं (केवल पायथन को छोड़कर, शायद), तो आप virtualenv डाउनलोड कर सकते हैं, या तो एक टारबॉल या एक स्टैंडअलोन स्क्रिप्ट के रूप में:

wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py
chmod +x ~/bin/virtualenv

यदि आपका डिस्ट्रो ब्लीडिंग एज प्रकार से अधिक है, तो Python3.3 में बिल्ट-इन वर्चुअनव जैसी क्षमताएं हैं:

python3 -m venv ./venv

यह तेजी से चलता है, लेकिन सेटपूल और पाइप शामिल नहीं हैं।


2

एक मैक (ओएक्सएक्स) पर पाइप स्थापित करने के लिए, निम्नलिखित एक लाइनर ने मेरे लिए बहुत काम किया:

sudo easy_install pip

2

रास्पियन में, यहां तक ​​कि उल्लेख करने की आवश्यकता नहीं है python2.7। वास्तव में यह पाइप को स्थापित करने का सबसे अच्छा तरीका है अगर अजगर संस्करण कम से कम 2.7.9 में।

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

@ ताल-वीस को धन्यवाद



1

मैं यह सब स्थापित करने के लिए get-pip और virtualenv-burrito का उपयोग करता हूं। निश्चित नहीं है कि अजगर-सेटप्टूल की आवश्यकता है या नहीं।

# might be optional. I install as part of my standard ubuntu setup script
sudo apt-get -y install python-setuptools

# install pip (using get-pip.py from pip contrib)
curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && sudo python get-pip.py

# one-line virtualenv and virtualenvwrapper using virtualenv-burrito
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash

1

डेबियन पर यह करने का सबसे अच्छा तरीका होगा

sudo apt-get install python-pip


1
डेबियन संस्करण बहुत पुराना हो सकता है। अधिक जानकारी के लिए इस उत्तर को जांचें: unix.stackexchange.com/a/182467/17425
georgiecasey

0

पूर्व विधि ठीक है। एकमात्र समस्या जो मैं देख सकता हूं कि आप सेटप्टूल के पुराने संस्करण के साथ समाप्त हो सकते हैं (यदि उपयुक्त रिपॉजिटरी को अद्यतित नहीं रखा गया है ..

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