पायथन पैकेज स्थापित करने में सक्षम नहीं [SSL: TLSV1_ALERT_PROTOCOL_VERSION]


167

मैं pipएक SSL त्रुटि प्राप्त करके , पायथन लाइब्रेरी का उपयोग करने की कोशिश कर रहा हूं :

~/projects/base  pre-master±  pip install xdict

Collecting xdict
  Could not fetch URL https://pypi.python.org/simple/xdict/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
  Could not find a version that satisfies the requirement xdict (from versions: )
No matching distribution found for xdict

पाइप संस्करण: पाइप 9.0.1

मैं इस त्रुटि को कैसे ठीक करूं?


1
इस उत्तर का पालन करें stackoverflow.com/a/46808948/2419644
मितुल शाह

जवाबों:


443

पाइप को निम्नानुसार अपग्रेड करें:

curl https://bootstrap.pypa.io/get-pip.py | python

नोट: आपको sudo pythonआभासी वातावरण में नहीं तो ऊपर उपयोग करने की आवश्यकता हो सकती है।

(ध्यान दें कि उन्नयन pipका उपयोग कर pipयानी pip install --upgrade pipभी सही ढंग से अपग्रेड नहीं करेंगे। यह सिर्फ एक चिकन और अंडे मुद्दा है। pipजब तक काम नहीं टीएलएस> = 1.2 का उपयोग कर देगा।)

जैसा कि इस विस्तृत उत्तर में उल्लेख किया गया है , यह हाल ही में पाइप के लिए टीएलएस की कमी के कारण है। Python.org साइटों ने टीएलएस संस्करण 1.0 और 1.1 के लिए समर्थन बंद कर दिया है

पायथन स्थिति पृष्ठ से:

पूर्ण - रोलिंग ब्राउनआउट समाप्त हो गए हैं, और TLSv1.0 और TLSv1.1 को अक्षम कर दिया गया है। अप्रैल 11, 15:37 यूटीसी


PyCharm (virtualenv) उपयोगकर्ताओं के लिए:

  1. शेल के साथ आभासी वातावरण चलाएं। (अपने स्थान पर "./venv/bin/activate" बदलें)

    source ./venv/bin/activate
  2. अपग्रेड रन करें

    curl https://bootstrap.pypa.io/get-pip.py | python
  3. अपने PyCharm उदाहरण को पुनरारंभ करें, और वरीयता में अपने पायथन इंटरप्रेटर की जाँच करें ।


2
यह मेरे लिए काम किया! sudoअनुमति अस्वीकृत त्रुटियों के कारण मुझे सबसे आगे जोड़ना पड़ा । धन्यवाद!
सिमर

34
काम करने के लिए सूडो की आवश्यकता होती है: curl https://bootstrap.pypa.io/get-pip.py | sudo python
वालेस

2
@Simar @Wallace हाँ, sudoएक आभासी वातावरण में नहीं तो आवश्यकता हो सकती है । उत्तर में उस बिट को भी जोड़ा।
अनुपम

1
यदि आप एक आभासी वातावरण में नहीं हैं, तो आपको अपने अजगर बाइनरी के लिए पथ निर्दिष्ट करने की आवश्यकता हो सकती है, जैसा कि इलिया नीचे उल्लेखित है
क्रिस

2
OSX पर इसने मेरे लिए बेहतर काम कियाcurl https://bootstrap.pypa.io/get-pip.py | sudo -H python3
निक फोक्स

26

लेकिन अगर curlकमांड स्वयं त्रुटि के साथ विफल होता है, या "tlsv1 अलर्ट प्रोटोकॉल संस्करण" अपग्रेड होने के बाद भी बना रहता है pip, तो इसका मतलब है कि आपके ऑपरेटिंग सिस्टम का अंतर्निहित ओपनएसएसएल लाइब्रेरी संस्करण < 1.0.1या पायथन संस्करण < 2.7.9(या < 3.4पायथन 3 में) नए टीएलएस 1.2 प्रोटोकॉल का समर्थन नहीं करता है। कि लगभग एक साल पहलेpip से PyPI से कनेक्ट करने की जरूरत है । आप इसे पायथन दुभाषिया में आसानी से देख सकते हैं:

>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 0.9.8o 01 Jun 2010'
>>> ssl.PROTOCOL_TLSv1_2
 AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2'

AttributeError(के बजाय उम्मीद '5') का अर्थ है अपने अजगर stdlib sslमॉड्यूल, वर्ष openssl lib के खिलाफ संकलित, TLSv1.2 प्रोटोकॉल (भले ही openssl पुस्तकालय या बाद में अद्यतन किया जा सकता कर सकते हैं) के लिए समर्थन की कमी है।

सौभाग्य से, इसे पायथन (और पूरे सिस्टम) को अपग्रेड किए बिना हल किया जा सकता है , अतिरिक्त पायथन पैकेजों को मैन्युअल रूप से स्थापित करके - स्टैकओवरफ़्लो पर विस्तृत चरण-दर-चरण गाइड यहां उपलब्ध है

ध्यान दें, curlऔर pipऔर wgetसब SSL कनेक्शन (उपयोग की स्थापना के लिए एक ही OpenSSL lib पर निर्भर $ openssl versionआदेश)। libcurl कर्ल संस्करण 7.34 के बाद से TLS 1.2 का समर्थन करता है , लेकिन पुराने कर्ल संस्करण कनेक्ट करने में सक्षम होने चाहिए यदि आपके पास ओपनएसएसएल संस्करण 1.0.2 (या बाद में) था।


पुनश्च
लिए अजगर 3 , का उपयोग करें python3और pip3हर जगह (जब तक आप में हैं एक venv / virtualenv), सहित curlसे आदेश ऊपर :
$ curl https://bootstrap.pypa.io/get-pip.py | python3 --user


4
मुझे यह भी एहसास हुआ कि मुझे दौड़ना है pip3, न कि pip- वर्ज़न को चेक -Vकरने के लिए कमांड के साथ सुनिश्चित करें कि आप सही पाइप चला रहे हैं !!
Jan

9

OS X पर @ अनुपम के जवाब के बाद मेरे लिए निम्नलिखित त्रुटि हुई, बिना अनुमति के मैंने इसे चलाया:

एन्वायरन्मेंटएरर के कारण पैकेज स्थापित नहीं किया जा सका: [एर्नो 13] अनुमति से इनकार: ...

आखिरकार जो काम किया, वह मेरे ब्राउज़र से सीधे PyPI से एक नया पाइप पैकेज (9.0.3) डाउनलोड करने के लिए था - https://pypi.org/simple/pip/ , सामग्री निकालें, और फिर स्थानीय रूप से पैकेज स्थापित करें।

pip install ./pip-9.0.3/

इससे मेरी [SSL: TLSV1_ALERT_PROTOCOL_VERSION]त्रुटियाँ ठीक हो गईं।


7

@ अनुपम के समाधान ने मेरे लिए काम किया। हालाँकि, मुझे sudoअपने आभासी पायथन वातावरण के सटीक स्थान का उपयोग और निर्दिष्ट करना पड़ा :

curl https://bootstrap.pypa.io/get-pip.py | sudo /Users/{your user name}/{path to python}/bin/python

6

स्थानीय संस्करण को अपग्रेड करने के लिए मैंने एक मामूली संस्करण का उपयोग किया:

curl https://bootstrap.pypa.io/get-pip.py | python - --user

यह समस्या तब उत्पन्न होती है जब आप अपने पाइप और पैकेज को अपनी घरेलू निर्देशिका के तहत रखते हैं जैसा कि इस विवरण में वर्णित है ।


5

निम्नलिखित समाधान ने मेरे लिए काम किया:

brew install python2

यह pipसंस्करण १.१०.१ में भी उन्नत हुआ


^ यह उन लोगों के लिए है जो OSX पर डिफ़ॉल्ट अजगर का उपयोग नहीं करते हैं। मुझे लगता है कि सवाल OSX विशिष्ट नहीं था, लेकिन वैसे भी, यदि आप लिनक्स नहीं चला रहे हैं, तो यह काम करता है --- जब तक कि आप सिस्टम स्थापित पायथन पर लेखन नहीं कर रहे हैं।
जार

यह मेरे लिए काम करता है, मैं OSX पर अजगर का उपयोग करता हूं। मेरी स्थिति मैंने एक सप्ताह बिता दी कि मैं किसी भी पाइप पैकेज को स्थापित करने की कोशिश करूं और यह विफल रहा। मैंने पाइप को अनइंस्टॉल कर दिया और इस समय से मैं तब तक कुछ नहीं कर सकता जब तक मुझे यह कमांड नहीं मिला, जिसने मेरे लिए पाइप स्थापित किया। धन्यवाद!
अमूल

3

अपने TLS संस्करण की जाँच करें:

python2 -c "import urllib2,json; print(json.loads(urllib2.urlopen('https://www.howsmyssl.com/a/check').read())['tls_version'])"

यदि आपका टीएलएस संस्करण 1.2 से कम है, तो आपको इसे अपग्रेड करना होगा क्योंकि PyPI रिपॉजिटरी प्रारंभिक TLS को अपदस्थ करने के एक भूरे रंग की अवधि पर है।

स्रोत - आपका पायथन अपग्रेड करने का समय: TLS v1.2 जल्द ही अनिवार्य होगा

आप निम्न आदेश का उपयोग करके TLS संस्करण को अपग्रेड कर सकते हैं:

sudo apt-get update && sudo apt-get install openssl libssl-dev

इससे आपकी समस्या ठीक होनी चाहिए। सौभाग्य!

संपादित करें: आप टीएलएस संस्करण की परवाह किए बिना अपने निजी अजगर पैकेज भंडार का उपयोग करके पैकेज डाउनलोड कर सकते हैं। निजी पायथन पैकेज रिपोजिटरी


2

इसने मेरे लिए काम किया। अजगर से पहले सूडो जोड़ें

curl https://bootstrap.pypa.io/get-pip.py |sudo python

2

पायथन 2 विन 10 उपयोगकर्ताओं के लिए:

1. पूरी तरह से अजगर को स्थापित करें, सभी फ़ोल्डरों को शामिल करें।

2.Fest और सबसे अंतिम पायथन-2.7 स्थापित करें। सेमी (2.7.15 देखें)

3. चरण 2 के बाद, आप पा सकते हैं कि पाइप भी स्थापित किया गया था।

4.अब, अगर आपका system'env नहीं बदला गया है, तो आप संकुल को अभी संस्थापित करने के लिए पाइप का उपयोग कर सकते हैं। "tlsv1 चेतावनी प्रोटोकॉल संस्करण" दिखाई नहीं देगा।


2

मैंने सभी मौजूदा सुधारों की कोशिश की और मेरे लिए काम नहीं किया

मैं python 2.7 (पाइप भी स्थापित करूँगा) को डाउनलोड करके पुनः स्थापित करूँगा। https://www.python.org/downloads/mac-osx/ पर .pkg

डाउनलोड किए गए pkg की स्थापना के बाद मेरे लिए काम करता है


2

मैं इस समस्या में भी भाग गया। अंतर्निहित समस्या यह है कि पायथन 2.7 संस्करण <2.7.9 में ssl लाइब्रेरी अब पाइप तंत्र के साथ संगत नहीं है।

यदि आप विंडोज पर चल रहे हैं, और आप (हमारे जैसे) 2.7 के असंगत संस्करण से आसानी से अपग्रेड नहीं कर सकते हैं, तो एफडब्ल्यूआईडब्ल्यू, मैंने पाया कि यदि आप पायथन के नवीनतम संस्करण (जैसे पायथन 2.7) के एक और इंस्टॉल से निम्नलिखित फाइलों को कॉपी करते हैं। 15) अपनी स्थापना के लिए एक और मशीन पर:

    Lib\ssl.py
    libs\_ssl.lib
    DLLs\_ssl.dll

यह प्रभावी रूप से आपके SSL लेयर को "अपग्रेड" करेगा जो समर्थित है; हम तब पाइप का उपयोग करने में सक्षम थे, यहां तक ​​कि पाइप को अपग्रेड करने के लिए भी।


1

यह मेरे लिए काम करता है, मैंने पाइप का नवीनतम संस्करण स्थापित किया और फिर लाइब्रेरी ( ciscoconfparse ) स्थापित किया ।

अपग्रेडिंग पाइप:

curl https://bootstrap.pypa.io/get-pip.py | sudo /Users/{your user name}/{path to python}/bin/python

1

myenv:

अजगर 2.7.14

पाइप 9.0

मैक ओएसएक्स 10.9.4


mysolution:

  1. get-pip.pyमैन्युअल रूप से https://packaging.python.org/tutorials/installing-packages/ से डाउनलोड करें

  2. Daud python get-pip.py


refs:

https://github.com/pypa/warehouse/issues/3293#issuecomment-378468534

https://packaging.python.org/tutorials/installing-packages/

सुरक्षित रूप से डाउनलोड get-pip.py [1]

अजगर मिल- pip.py चलाएं। [२] यह पाइप को स्थापित या उन्नत करेगा। इसके अलावा, अगर वे पहले से ही स्थापित नहीं हैं तो यह सेटपूल और व्हील स्थापित करेगा।

सुनिश्चित करें कि पाइप, सेटपूल, और व्हील अप टू डेट हैं

जबकि पाइप अकेले पूर्व निर्मित द्विआधारी अभिलेखागार से स्थापित करने के लिए पर्याप्त है, सेटटॉपूल और पहिया परियोजनाओं की तारीख तक की प्रतियां यह सुनिश्चित करने के लिए उपयोगी हैं कि आप स्रोत अभिलेखागार से भी स्थापित कर सकते हैं:

python -m pip install --upgrade pip setuptools wheel


1

मैंने अपनी विंडोज़ 10 पर भी इस समस्या को मारा और सभी उत्तरों की कोशिश की, लेकिन मेरी समस्या हल नहीं हुई।

C: \ python367 \ Scripts> पाइप स्थापित फ्लास्क

फ्लास्क का संग्रह एक ऐसा संस्करण नहीं मिला जो आवश्यकता को संतुष्ट करता हो फ्लास्क (संस्करणों से:) फ्लास्क के लिए कोई मिलान वितरण नहीं मिला

उसके बाद, मुझे लगता है कि पाइप विन्यास फाइल को संशोधित किया गया था। इसलिए, मैंने pip.iniमूल डिफ़ॉल्ट कॉन्फ़िगरेशन के रूप में सेट किया, पाइप कमांड को फिर से चलाया और यह मेरे लिए काम करता है!

मेरे समाधान के सारांश में:

  1. Pip.ini की जांच करें (आमतौर पर पथ के तहत C:\ProgramData\pip) संशोधित किया गया था;

  2. यदि चरण 1 में हाँ है, तो इसे डिफ़ॉल्ट कॉन्फ़िगरेशन पर रीसेट करने का प्रयास करें।


1

या बस आवश्यक पुस्तकालय सिर्फ रेपो में नहीं है। मैं पाइथन नौसिखिया हूं और पाइप को अपग्रेड करने के बारे में सभी सलाह आखिरकार भ्रामक के रूप में दिखाई गई। मुझे बस https://pypi.org/ पर गौर करना था , पुस्तकालय (मेरे मामले में एयरफ़्लो) को ढूंढना कुछ पुराने संस्करण पर बंद हो गया, जिसके बाद इसका नाम बदल दिया गया। हाँ, यह भी कि मूर्खतापूर्ण समाधान भी संभव है :-)।


1

सभी उपयोगकर्ताओं python3और pip3उपयोगकर्ताओं के लिए:

curl https://bootstrap.pypa.io/get-pip.py | sudo python3

और फिर मान लें कि आप पांडा स्थापित करना चाहते हैं

pip3 install pandas --user

1

के माध्यम से पाइप स्थापित करने के जवाब:

  1. curl https://bootstrap.pypa.io/get-pip.py |sudo python या
  2. curl https://bootstrap.pypa.io/get-pip.py | python

मेरे लिए काम नहीं किया क्योंकि मैं त्रुटि प्राप्त करता रहा:

Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)) - skipping
ERROR: Could not find a version that satisfies the requirement pip (from versions: none)
ERROR: No matching distribution found for pip

मुझे pipमैन्युअल रूप से इंस्टॉल करना था :

  1. pipवितरण वेबसाइट पर जाएं
  2. tar.gzसंस्करण डाउनलोड करें
  3. फ़ाइल को स्थानीय रूप से और cdनिर्देशिका में अनपैक करें
  4. Daud python setup.py install
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.