पाइप के साथ विशिष्ट पैकेज संस्करण स्थापित करना


1311

मैं MySQL_python एडाप्टर के संस्करण 1.2.2 को स्थापित करने का प्रयास कर रहा हूं, --no-site-packagesविकल्प के साथ बनाए गए एक नए वर्चुअनव का उपयोग कर रहा हूं । PyPi में दिखाया गया वर्तमान संस्करण 1.2.3 है । क्या पुराने संस्करण को स्थापित करने का कोई तरीका है? मुझे यह बताते हुए एक लेख मिला कि यह करना चाहिए:

pip install MySQL_python==1.2.2

जब स्थापित किया जाता है, तब भी, यह अभी भी MySQL_python-1.2.3-py2.6.egg-infoसाइट पैकेज में दिखता है। क्या यह इस पैकेज के लिए एक समस्या है, या मैं कुछ गलत कर रहा हूं?


16
संकेत के लिए धन्यवाद, यह मेरे लिए Openpyxl के पुराने संस्करण को स्थापित करने के लिए काम करता हैpip install MySQL_python==1.8.9
टिम

4
हाँ, यह पांडा के लिए भी काम करता है, धन्यवाद:pip install -Iv pandas==0.12.0
tandy

1
मेरे लिए भी काम किया: पाइप स्थापित xvfbwrapper == 0.2.4
amitdatta

जवाबों:


892

टी एल; डॉ:

  • pip install -Iv(यानी pip install -Iv MySQL_python==1.2.2)

सबसे पहले, मैं दो मुद्दों को देखता हूं कि आप क्या करने की कोशिश कर रहे हैं। चूंकि आपके पास पहले से ही स्थापित संस्करण है, इसलिए आपको या तो मौजूदा मौजूदा ड्राइवर की स्थापना रद्द करनी चाहिए या उपयोग करना चाहिएpip install -I MySQL_python==1.2.2

हालाँकि, आपको जल्द ही पता चल जाएगा कि यह काम नहीं करता है। यदि आप पाइप के इंस्टॉलेशन लॉग को देखते हैं, या यदि आप करते हैं, तो आप pip install -Iv MySQL_python==1.2.2पाएंगे कि PyPI URL लिंक MySQL_python v1.2.2 के लिए काम नहीं करता है। आप इसे यहां सत्यापित कर सकते हैं: http://pypi.python.org/pypi/MySQL-python/1.2.2

Sourceforge.net के हालिया अपग्रेड और PyPI के बासी URL की वजह से डाउनलोड लिंक 404s और फॉलबैक URL लिंक अनंत बार फिर से निर्देशन कर रहे हैं।

तो ड्राइवर को ठीक से स्थापित करने के लिए, आप इन चरणों का पालन कर सकते हैं:

pip uninstall MySQL_python
pip install -Iv http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz/download

1
हालांकि, कई संस्करणों के साथ कोई समस्या नहीं होनी चाहिए, यह हर संस्करण के लिए नए फ़ोल्डर बनाने और .pth फ़ाइलों का उपयोग करने की बात है।
जोहान रिट्जेल

3
यह सही संस्करण स्थापित करता है इसलिए इस प्रश्न का उत्तर है - आपकी मदद के लिए धन्यवाद। अब एक अलग मुद्दा मार रहा है: "_mysql 'एक्सटेंशन बनाते समय" त्रुटि: कमांड' /usr/bin/gcc-4.2 'निकास स्थिति 1 के साथ विफल "। मुझे पता है कि मेरे पास जीसीसी है, और MySQL_python 1.2.3 के लिए इंस्टॉल आसानी से हो जाता है। क्या अन्य लोगों ने इस मुद्दे को देखा है, विशेष रूप से 1.2.2 के साथ?
जो

कृपया एक और प्रश्न करें और त्रुटि संदेश पोस्ट करें जो आपको पाइप से मिल रहा है।
महमूद अब्देलकादर

2
ज़रूर - यहाँ लिंक है: stackoverflow.com/questions/5226945/…
जो

4
जिज्ञासु क्यों आप -I विकल्प का उपयोग करते हैं यदि हमने पहले से ही मौजूदा स्थापना को हटा दिया है - तो क्या आप उस पर कुछ विवरण दे सकते हैं?
जो

509

तुम भी pip installआदेश के साथ एक संस्करण रेंज का उपयोग कर सकते हैं । कुछ इस तरह:

pip install 'stevedore>=1.3.0,<1.4.0'

और अगर पैकेज पहले से स्थापित है और आप इसे --force-reinstallइस तरह जोड़ना डाउनग्रेड करना चाहते हैं :

pip install 'stevedore>=1.3.0,<1.4.0' --force-reinstall

128
उदाहरण के लिए: $ pip install 'xkcdpass==1.2.5' --force-reinstall
jschank

1
उत्तम! Ubunto 15.04 पर चला गया और यह (स्वचालित रूप से) एक मौजूदा पुस्तकालय को निर्दिष्ट संस्करण के साथ बदल दिया। मेरी सभी समस्याओं का समाधान किया!
ज़ेविज

2
बस यह उल्लेख करने जा रहा हूं कि पायथन 2 के लिए मुझे '' के बजाय दोहरे उद्धरणों का उपयोग करना होगा ''
Prime_Aqasix

6
@ HandofC'thuhlu मुझे लगता है कि हमें खिड़कियों के लिए दोहरे उद्धरण चिह्नों का उपयोग करना होगा न कि 2
SmartManoj

3
विंडोज पर दोहरे उद्धरण चिह्नों का उपयोग करें: "
स्टेवेडोर

139

एक तरीका, जैसा कि इस पोस्ट में सुझाया गया है, इसpip रूप में संस्करण का उल्लेख करना है :

pip install -Iv MySQL_python==1.2.2

यानी ==केवल उस संस्करण को स्थापित करने के लिए संस्करण संख्या का उपयोग करें और उसका उल्लेख करें । -I, --ignore-installedपहले से ही स्थापित संकुल को अनदेखा करता है।


1
सावधान रहें! मेरा अनुभव था कि इसने अलग-अलग संस्करणों को एक दूसरे के बगल में स्थापित किया है ! इसके अलावा दिलचस्प pip listबात यह है कि इसके बारे में पता नहीं था, लेकिन conda list(और अलग पैकेज संस्करण प्रदर्शित करेगा)। इसने पाइक्रोम को भी पूरी तरह से भ्रमित कर दिया
लियोनेल ट्रेबुचोन

66

एक विशिष्ट अजगर पैकेज संस्करण स्थापित करने के लिए चाहे वह पहली बार हो, एक अपग्रेड या एक डाउनग्रेड उपयोग:

pip install --force-reinstall MySQL_python==1.2.4

MySQL_python संस्करण 1.2.2 उपलब्ध नहीं है इसलिए मैंने एक अलग संस्करण का उपयोग किया है। एक इंडेक्स से सभी उपलब्ध पैकेज संस्करणों को देखने के लिए संस्करण को बाहर करें:

pip install MySQL_python==

4
पाइप के साथ 10.0.1 यह एकमात्र कार्यशील समाधान है। "-I" विकल्प वास्तव में पिछले संस्करण को पुनर्स्थापित करता है।
फेडफ्रानजोनी

38

मेरा मानना ​​है कि यदि आपके पास पहले से ही एक पैकेज है, तो पाइप इसे दूसरे संस्करण के साथ अधिलेखित नहीं करेगा। -Iपिछले संस्करणों को अनदेखा करने के लिए उपयोग करें ।


1
मेरे पास यह स्थापित नहीं है - एक ताजा वर्चुअनव के साथ बनाया गया -no-package-package विकल्प के साथ
जो

2
ठीक है, तो आप संस्करण 1.2.2 के लिए पूछें और यह अभी भी 1.2.3 स्थापित करता है, और कुछ और स्थापित नहीं किया गया था? आपके द्वारा उपयोग किया गया सिंटैक्स विशिष्ट संस्करण प्राप्त करने के लिए सही है।
dappawit

"-no-site-package विकल्प के साथ बनाए गए ताज़ी virtualenv का उपयोग करना"; अपने पूर्व-स्थापित पुस्तकालयों को देखने से unset PYTHONPATHरखने के लिए आपको इसे कमांड के साथ आगे pip
बढ़ाने की

17

कभी-कभी, पहले से स्थापित संस्करण कैश किया जाता है।

~$ pip install pillow==5.2.0

यह अनुसरण वापस करता है:
आवश्यकता पहले से ही संतुष्ट: तकिया == 5.2.0 in /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)

हम इसे अधिलेखित करने के लिए -I-cache-dir के साथ-साथ उपयोग कर सकते हैं

~$ pip install --no-cache-dir -I pillow==5.2.0

5

चूंकि यह पाइप के संस्करण 10 में पेश किया गया एक ब्रेकिंग परिवर्तन था, इसलिए मैंने एक संगत संस्करण पर डाउनग्रेड किया:

pip install 'pip<10' 

यह कमांड पाइप को संस्करण 10 की तुलना में कम मॉड्यूल के संस्करण को स्थापित करने के लिए कहता है। यह एक virutalenv में करें ताकि आप पायथन की अपनी साइट की स्थापना को खराब न करें।


5

मैं हाल ही में उपयोग करते समय एक मुद्दा में भाग pipके -Iध्वज है कि मैं दस्तावेज़ कहीं करना चाहता था:

-Iआगे बढ़ने से पहले मौजूदा पैकेज की स्थापना रद्द नहीं करेगा ; यह सिर्फ पुराने के शीर्ष पर इसे स्थापित करेगा। इसका मतलब यह है कि संस्करणों के बीच हटा दी जानी चाहिए किसी भी फाइल को जगह में छोड़ दिया जाएगा। यह अजीब व्यवहार का कारण बन सकता है अगर वे फ़ाइलें अन्य स्थापित मॉड्यूल के साथ नाम साझा करती हैं।

उदाहरण के लिए, मान लें कि नाम का एक पैकेज है packagepackageएस फ़ाइलों में से एक में , वे उपयोग करते हैं import datetime। अब, package@2.0.0यह मानक पुस्तकालय datetimeमॉड्यूल को इंगित करता है , लेकिन अंदर package@3.0.0, उन्होंने datetime.pyमानक पुस्तकालय संस्करण (जो भी कारण के लिए) के प्रतिस्थापन के रूप में एक स्थानीय जोड़ा ।

अब मैं कहता हूं कि मैं दौड़ता हूं pip install package==3.0.0, लेकिन फिर बाद में महसूस होता है कि मैं वास्तव में संस्करण चाहता था 2.0.0। अगर मैं अब भागता हूं pip install -I package==2.0.0, तो पुरानी datetime.pyफ़ाइल को हटाया नहीं जाएगा, इसलिए किसी भी कॉल को import datetimeगलत मॉड्यूल आयात करना होगा।

मेरे मामले में, यह अजीब सिंटैक्स त्रुटियों के साथ प्रकट हुआ क्योंकि पैकेज के नए संस्करण में एक फ़ाइल जोड़ी गई जो केवल पायथन 3 के साथ संगत थी, और जब मैंने पायथन 2 का समर्थन करने के लिए पैकेज के संस्करणों को डाउनग्रेड किया, तो मैंने पायथन-3-केवल मॉड्यूल का आयात जारी रखा।

इसके आधार पर, मैं तर्क दूंगा कि पुराने पैकेज को अनइंस्टॉल करना हमेशा -Iस्थापित पैकेज संस्करणों को अपडेट करते समय उपयोग करने के लिए बेहतर होता है ।


3

यह नीचे आदेश मेरे लिए काम किया

पायथन संस्करण - 2.7

पैकेज - अजगर-जेनकींस

कमांड - $ pip install 'python-jenkins>=1.1.1'


प्रिय downvoter, कृपया उत्तर दें कि यह उत्तर क्यों दिया गया है?
तपन हेगड़े

मैं नीचे नहीं गया, लेकिन यह देख सकता हूं कि यह सवाल का जवाब नहीं देता है और न ही यह कोई उपयोगी जानकारी प्रदान करता है जिसका उपयोग ओपी समस्या को हल करने के लिए कर सकता है।
TheAmigo

0

2 तरीके हैं जिनसे आप किसी भी पैकेज को संस्करण के साथ स्थापित कर सकते हैं: - ए)। पाइप स्थापित -Iv पैकेज-नाम == संस्करण बी)। पाइप स्थापित -v पैकेज-नाम == संस्करण

के लिए

यहां, यदि आप इंस्टॉल करते समय -I विकल्प का उपयोग कर रहे हैं (जब आपको पता नहीं है कि पैकेज पहले से स्थापित है) (जैसे 'पाइप इंस्टॉल -Iv pyreadline == 2. * *' या कुछ और), तो आप एक नया स्थापित करेंगे कुछ अलग संस्करण वाले एक ही मौजूदा पैकेज के साथ अलग पैकेज।

B के लिए

  1. सबसे पहले, आप बिना किसी टूटी हुई आवश्यकताओं के लिए जांच कर सकते हैं। पाइप की जाँच

2. और फिर देखें कि पाइप सूची द्वारा पहले से क्या स्थापित है

3. अगर पैकेज की सूची में कोई भी पैकेज होता है जिसे आप विशिष्ट संस्करण के साथ स्थापित करना चाहते हैं तो बेहतर विकल्प है कि पहले इस संस्करण के पैकेज को अनइंस्टॉल कर दें, पैकेज अनइंस्टॉल-नेम द्वारा

4. और अब आप एक विशेष संस्करण के साथ एक ही पैकेज को पुनः स्थापित करने के लिए आगे बढ़ सकते हैं, पाइप स्थापित -v पैकेज-नाम == संस्करण द्वारा। पाइप स्थापित -v pyreadline == 2. *


0

यदि आप नवीनतम संस्करण में अद्यतन करना चाहते हैं और आपको नहीं पता कि नवीनतम संस्करण क्या है जिसे आप टाइप कर सकते हैं।

पाइप स्थापित करें MySQL_python - नवीनीकरण

यह उपलब्ध नवीनतम संस्करण के लिए MySQL_python को अपडेट करेगा, आप किसी अन्य पैकेज संस्करण के लिए उपयोग कर सकते हैं।

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