python - पायथन पैकेज स्थापित करने में सक्षम नहीं




python-2.7 pip (10)

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

~/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

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


myenv:

अजगर 2.7.14

पाइप 9.0

मैक ओएसएक्स 10.9.4

mysolution:

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

  2. 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


अपने 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

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

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


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

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

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

pip install ./pip-9.0.3/

इससे मेरी [SSL: TLSV1_ALERT_PROTOCOL_VERSION] त्रुटियाँ [SSL: TLSV1_ALERT_PROTOCOL_VERSION]


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

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

यह भी उन्नत संस्करण 1.10.1 करने के लिए pip उन्नत


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

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

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

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

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


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

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

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

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


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

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

pkg डाउनलोड होने के बाद मेरे लिए काम करता है


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

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

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

लेकिन अगर curl कमांड स्वयं त्रुटि के साथ विफल हो जाता है, या "tlsv1 अलर्ट प्रोटोकॉल संस्करण" pip को अपग्रेड करने के बाद भी बना रहता है, तो इसका मतलब है कि आपके ऑपरेटिंग सिस्टम का अंतर्निहित ओपनएसएसएल लाइब्रेरी संस्करण < 1.0.1 या पायथन संस्करण < 2.7.9 (या < 2.7.9 3 में < 3.4 ) नए टीएलएस 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 5 ’के बजाय) का अर्थ है कि आपका पायथन stdlib ssl मॉड्यूल, जो पुराने ओपनस्ले लिब के खिलाफ संकलित किया गया है, TLSv1.2 प्रोटोकॉल के लिए समर्थन की कमी है (भले ही ओपनस् ल्ल लाइब्रेरी या बाद में अपडेट किया जा सके)।

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

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

पुनश्च
पायथन 3 के लिए , कृपया above से curl कमांड सहित, हर जगह python3 और pip3 उपयोग करें (जब तक कि आप वीवीवी / वर्चुनेल में न हों):
$ curl https://bootstrap.pypa.io/get-pip.py | python3 --user


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

brew install python2

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







ssl-certificate