"कनेक्शन त्रुटि: [SSL: CERTIFICATE_VERIFY_FAILED] प्रमाणपत्र सत्यापन विफल होने पर पाइप इंस्टॉल विफल हो जाता है (_ssl.c: 598)"


397

मैं अजगर के लिए बहुत नया हूं और > pip install linkcheckerविंडोज 7 पर कोशिश कर रहा हूं । कुछ नोट्स:

  • पाइप स्थापित करने में कोई फर्क नहीं पड़ रहा है पैकेज। उदाहरण के लिए, > pip install scrapyएसएसएल त्रुटि में भी परिणाम है।
  • पायथन 3.4.1 के वेनिला इंस्टॉल में पाइप 1.5.6 शामिल था। पहली चीज़ जो मैंने करने की कोशिश की, वह थी लिंककैचर स्थापित करना। पायथन 2.7 पहले से ही स्थापित था, यह आर्कगिस के साथ आया था। pythonऔर pipकमांड लाइन से तब तक उपलब्ध नहीं थे जब तक मैंने 3.4.1 स्थापित नहीं किया।
  • > pip search linkcheckerकाम करता है। शायद ऐसा इसलिए है क्योंकि पाइप खोज साइट के एसएसएल प्रमाणपत्र को सत्यापित नहीं करती है।
  • मैं एक कंपनी नेटवर्क में हूं लेकिन हम इंटरनेट तक पहुंचने के लिए प्रॉक्सी से नहीं गुजरते।
  • प्रत्येक कंपनी के कंप्यूटर (मेरा सहित) में एक ट्रस्टेड रूट सर्टिफिकेट अथॉरिटी है, जिसका उपयोग विभिन्न कारणों से किया जाता है, जिसमें टीएलएस ट्रैफिक की निगरानी करने के लिए https://google.com शामिल है । यकीन नहीं है कि अगर इसके साथ कुछ करना है।

यहां चलने के बाद मेरे पाइप की सामग्री हैं pip install linkchecker:

Downloading/unpacking linkchecker
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Getting page https://pypi.python.org/simple/
  Could not fetch URL https://pypi.python.org/simple/: connection error: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/ (Caused by <class 'http.client.CannotSendRequest'>: Request-sent)
  Will skip URL https://pypi.python.org/simple/ when looking for download links for linkchecker
  Cannot fetch index base URL https://pypi.python.org/simple/
  URLs to search for versions for linkchecker:
  * https://pypi.python.org/simple/linkchecker/
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Could not find any downloads that satisfy the requirement linkchecker
Cleaning up...
  Removing temporary dir C:\Users\jcook\AppData\Local\Temp\pip_build_jcook...
No distributions at all found for linkchecker
Exception information:
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "C:\Python34\lib\site-packages\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "C:\Python34\lib\site-packages\pip\req.py", line 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "C:\Python34\lib\site-packages\pip\index.py", line 277, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
pip.exceptions.DistributionNotFound: No distributions at all found for linkchecker

1
काफी विपरीत! पायथन 3.4.1 और पहले डिफ़ॉल्ट रूप से प्रमाणपत्र सत्यापन नहीं करते हैं। यदि आप पायथन 3.4.2 का उपयोग कर रहे थे, तो मुझे लगा कि समस्या थी। ( २१०१३ की समस्या और मेलिंग सूची पर इस धागे को देखें । ध्यान दें कि यह बहुत लंबे धागे की शुरुआत है।) क्षमा करें मैं वास्तव में मदद नहीं कर सकता!
कोडी पियर्सल

3
जाँच करें कि क्या आपके पास फ़िडलर खोला और बंद कर दिया है। Fiddler SSL तोड़ने की कोशिश करता है और यह पाइप को तोड़ देता है, जब मैं मेरे लिए fiddler pip काम करता हूं। जब मैं अपने फिडलर को बंद करता हूं तो सब कुछ ठीक हो जाता है
जोस बारबोसा

जवाबों:


639

-----> पाइप स्थापित gensim config --global http.ssl सत्यापित करें गलत

बस "config --global http.sslVerify false" स्टेटमेंट के साथ कोई भी पैकेज स्थापित करें

आप SSL त्रुटियों को नजरअंदाज करके pypi.orgऔर files.pythonhosted.orgमेजबान के रूप में विश्वसनीय बना सकते हैं।

$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package_name>

नोट : अप्रैल 2018 के दौरान कुछ समय, अजगर पैकेज सूचकांक से माइग्रेट की गई pypi.python.orgकरने के लिए pypi.org। इसका अर्थ है कि पुराने डोमेन का उपयोग करने वाले "विश्वसनीय-होस्ट" कमांड अब काम नहीं करते हैं।

स्थायी फिक्स

पाइप 10.0 जारी होने के बाद से, आपको इसे स्थायी रूप से केवल अपग्रेड करके ठीक करना चाहिए pip:

$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org pip setuptools

या नवीनतम संस्करण प्राप्त करने के लिए इसे पुनः इंस्टॉल करके :

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

(… और फिर get-pip.pyसंबंधित पायथन इंटरप्रेटर के साथ चल रहा है )।

pip install <otherpackage>बस इसके बाद काम करना चाहिए। यदि नहीं, तो आपको और अधिक करने की आवश्यकता होगी, जैसा कि नीचे बताया गया है।


आप अपने कॉन्फ़िगर फ़ाइल में विश्वसनीय होस्ट और प्रॉक्सी जोड़ना चाह सकते हैं ।

pip.ini(विंडोज) या pip.conf(यूनिक्स)

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org

वैकल्पिक समाधान (कम सुरक्षित)

अधिकांश उत्तर सुरक्षा समस्या का कारण बन सकते हैं।

अधिकांश वर्कआउट्स में से दो जो आसानी से अजगर पैकेजों को स्थापित करने में मदद करते हैं:

  • Easy_install का उपयोग करना : यदि आप वास्तव में आलसी हैं और अधिक समय बर्बाद नहीं करना चाहते हैं, तो उपयोग करें easy_install <package_name>। ध्यान दें कि कुछ पैकेज नहीं मिलेंगे या छोटी त्रुटियां देंगे।
  • व्हील का उपयोग करना : अजगर पैकेज का पहिया डाउनलोड करें और पैकेजpip install wheel_package_name.whl को स्थापित करने के लिए पाइप कमांड का उपयोग करें ।

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

11
बहुत बढ़िया, thx! विश्वसनीय-होस्ट पर्याप्त लगता है, अर्थात। pip install --trusted-host pypi.python.org pypi_package। का प्रयोग --verboseसे पता चलता है कि बिना --trusted-host, HTTPS कनेक्शन के साथ विफल रहता है, जबकि एक ही HTTPS कनेक्शन का प्रयास किया है (HTTP नहीं) --trusted-host, लेकिन यह सफल होता है।
ओलिवर

12
HTTP संस्करण का उपयोग नहीं कर रहा है (और फिर उस पर भरोसा भी) एक सुरक्षा जोखिम?
पाओलो एबरमन

3
- theindex-url पैरामीटर को अनदेखा करने के लिए आप इसे छोटा बना सकते हैं, कोशिश करें कि यह कमांड भी ठीक होनी चाहिए:pip install --trusted-host pypi.python.org pythonPackage
Alter Hu

8
यह मेरे लिए काम नहीं करता है। एक मैकबुकप्रो 15 पर मैक ओएस हाई सिएरा रनिंग "पायथन 2.7 पाइप 9.0.1 I दोनों की कोशिश की: sudo -H pip install --trusted-host pypi.python.org numpy और sudo pip install --trusted-host pypi.python.org यह हमेशा मुझे एक ही त्रुटि देता है: "एसएसएल प्रमाणपत्र की पुष्टि करने में एक समस्या थी: [एसएसएल: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 चेतावनी प्रोटोकॉल संस्करण (_ssl.c: 661) - लंघन एक संस्करण नहीं मिल सकता है जो आवश्यकता को पूरा करता है"
DaniPaniz

123

आप इस परम के साथ एक प्रमाण पत्र निर्दिष्ट कर सकते हैं:

pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker

देखें: डॉक्स »संदर्भ गाइड» पाइप

यदि आपकी कंपनी के मूल प्रमाणपत्र को निर्दिष्ट करने से काम नहीं चलता है तो शायद CURL काम करेगा: http://curl.haxx.se/ca/cacert.pem

आपको PEM फ़ाइल का उपयोग करना चाहिए, न कि CRT फ़ाइल का। यदि आपके पास एक CRT फाइल है तो आपको फाइल को PEM में बदलना होगा । टिप्पणियों में ऐसी रिपोर्ट्स हैं जो अब CRT फ़ाइल के साथ काम करती हैं लेकिन मैंने सत्यापित नहीं किया है।

यह भी जांच: एसएसएल प्रमाणपत्र सत्यापन


1
कर्ल एक सुरक्षित है। मैं उस का उपयोग करने का सुझाव दूंगा।
स्टीव टूबर

1
@JeremyCook यह आपके सर्वर पर समय हो सकता है, अगर यह अतीत में है तो यह सत्यापित करने की प्रक्रिया हो सकती है
जियोवानी बिटलाइनर

1
CRT प्रारूप समर्थित नहीं है, केवल PEM प्रारूप है। आपको ओपनसेल का उपयोग करके सीआरटी को पीईएम प्रारूप में बदलना होगा। आपको यह भी सत्यापित करना चाहिए कि आपने जो बंडल डाउनलोड किया है उसमें सही रूट CA है। कृपया विवरण के लिए ऊपर मेरा उत्तर देखें: stackoverflow.com/a/28724886/41957
chnrxn

1
@JeremyCook, PEM / certs सीधे तीसरे पक्ष से नहीं आए जिन्हें आपने उनसे डाउनलोड किया था। उन्होंने मूल स्रोतों से अनाज इकट्ठा किया। जब तक उनके पास सही कुंजी नहीं होगी (जो केवल किसी और के पास होगी) किसी दूसरे व्यक्ति का प्रमाण पत्र बनाना किसी तीसरे पक्ष के लिए संभव नहीं है।
chnrxn

4
@endolith - को देखते हुए pip.pypa.io/en/stable/user_guide/#configuration ऐसा लगता है कि आप कर सकते हैं या तो उपयोग वातावरण चर, या एक pip.confके लिए उन्हें आदेश पर निर्दिष्ट किए बिना स्थायी रूप से संदर्भित करने के लिए फ़ाइल
Cinderhaze

63

kenorb का उत्तर बहुत उपयोगी है (और महान!)।
उनके समाधान के बीच, शायद यह सबसे सरल है: --trusted-host

उदाहरण के लिए, इस मामले में आप कर सकते हैं

pip install --trusted-host pypi.python.org linkchecker

पेम फ़ाइल (या कुछ और) अनावश्यक है।


यह अन्य कमांड जैसेpip list --trusted-host pypi.python.org --outdated
इगोर

60

मेरे लिए समस्या एक फ़ोल्डर बनाने के द्वारा तय किया गया था pip: एक फ़ाइल के साथ, pip.ini में C:\Users\<username>\AppData\Roaming\ उदाहरण के लिए:

C:\Users\<username>\AppData\Roaming\pip\pip.ini

इसके अंदर मैंने लिखा है:

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org

मैंने अजगर को फिर से शुरू किया, और फिर इन साइटों पर स्थायी रूप से भरोसा किया, और उन्हें पैकेज डाउनलोड करने के लिए इस्तेमाल किया।

यदि आपको विंडोज़ पर AppData फ़ोल्डर नहीं मिल रहा है, तो %appdata%फ़ाइल एक्सप्लोरर में लिखें और यह प्रदर्शित होना चाहिए।


अजीब तरह से यह मेरी Win10 मशीन पर मदद नहीं कर रहा है: /
mcandre

1
काम पर, विंडोज 10 पर्यावरण, Cmder कंसोल एमुलेटर का उपयोग कर। - सबमिट किए गए-होस्ट "SSLError (SSLCertVerificationError (1, '[SSL: CERTIFICATE_VERIFY_FAILED]) प्रमाणपत्र का सत्यापन विफल हो गया: प्रमाणपत्र श्रृंखला में" स्वयं हस्ताक्षरित प्रमाणपत्र "इस समस्या को हल कर दिया। आज यह काम करना बंद कर दिया है। मैंने अपने पाइप फ़ोल्डर की एक प्रति ( से लिया गया ../AppData/Local/) ../AppData/Roaming/ में और मेरे स्थानीय अजगर दुनिया के साथ फिर से सही है। बहुत-बहुत धन्यवाद!
IdusOrtus

1
महान! आपका बहुत बहुत धन्यवाद। - सौंपा-होस्ट अब मेरे लिए काम नहीं करता है, लेकिन आपका समाधान मदद करता है।
अलेक्जेंडर प्रोकोफ़ेव

1
Python>
98Ed

बहुत बढ़िया! मैं जीआईटी, कंपनी के प्रॉक्सी, एसएसएल से संबंधित त्रुटियों को खोज रहा था और यह सिर्फ पाइप से संबंधित था। धन्यवाद और मुझे उम्मीद है कि यह टिप्पणी मेरे जैसे लोगों को भ्रमित करेगी।
नेगास

41

उत्तर काफी समान हैं और थोड़ा भ्रमित करने वाले हैं। मेरे मामले में, मेरी कंपनी के नेटवर्क में प्रमाण पत्र मुद्दा था। मैं इस समस्या का उपयोग करने में सक्षम था:

pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org oauthlib -vvv

जैसा कि यहां देखा गया है । -Vvv तर्क को छोड़ दिया जा सकता है अगर क्रिया आउटपुट की आवश्यकता नहीं है


10
मेरी समस्या को ठीक करने के लिए केवल एक, धन्यवाद।
ग्रिंगो सुवे

बहुत बढ़िया, एक ही है कि मेरे लिए भी काम किया!
Ethikz

काम करता है क्योंकि आज मैं कुछ प्रॉक्सी के पीछे हूं जो सामान्य एसएसएल को स्ट्रिप्स करता है। जब नेटवर्क बड़े होते हैं तो मुझे भरोसेमंद मेजबानों को निर्दिष्ट करने की आवश्यकता नहीं होती है।
MrChrister 21

यह मेरे लिए भी काम करता है। ऊपर काम नहीं किया
श्रीनाथ गणेश

32

स्थायी फिक्स

pip install --upgrade pip --trusted-host pypi.org --trusted-host files.pythonhosted.org

उदाहरण के लिए:

pip install <package name> --trusted-host pypi.org --trusted-host files.pythonhosted.org

24

एक बार और सभी के लिए इस समस्या को हल करने के लिए, आप सत्यापित कर सकते हैं कि आपके पास एक pip.confफ़ाइल है।

यह वह जगह है जहाँ आपके दस्तावेज़ केpip.conf अनुसार होना चाहिए :

यूनिक्स पर डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल है: $HOME/.config/pip/pip.confजो XDG_CONFIG_HOME पर्यावरण चर का सम्मान करता है।

MacOS पर कॉन्फ़िगरेशन फ़ाइल है $HOME/Library/Application Support/pip/pip.confयदि निर्देशिका $HOME/Library/Application Support/pipमौजूद है$HOME/.config/pip/pip.conf

Windows पर कॉन्फ़िगरेशन फ़ाइल है %APPDATA%\pip\pip.ini

एक virtualenv के अंदर:

Unix और macOS पर फ़ाइल है $VIRTUAL_ENV/pip.conf

विंडोज पर फाइल है: %VIRTUAL_ENV%\pip.ini

आपकी pip.confतरह दिखना चाहिए:

[global]
trusted-host = pypi.python.org

pip install linkcheckerफ़ाइल linkcheckerबनाए जाने के बाद शिकायत किए बिना स्थापित pip.conf


1
$ HOME / लाइब्रेरी / एप्लीकेशन सपोर्ट / पाइप मेरी मशीन पर मौजूद नहीं है, क्या कोई वैकल्पिक स्थान है?
42shadow42

ऐसा लगता है कि pipजब से मैंने यह उत्तर पोस्ट किया है तब से उपयोगकर्ता-गाइड अपडेट किया गया है। मैंने macOS के लिए अपना जवाब अपडेट किया। क्या इसने सहायता की?
एलेक्स-एंटोनी फोर्टिन

मेरी Win10 मशीन पर SSL त्रुटि को प्रभावित नहीं करता है: /
mcandre

MacOSX पर समस्या को ठीक नहीं करता है।
MoDJ

मैं macOS पर हूं। यदि आपने python3 का उपयोग करके स्थापित किया है, brewतो सुनिश्चित करें कि आप उपयोग कर रहे हैं pip3और pip.confजैसा बना रहे हैं $HOME/.config/pip/pip.conf। मैंने मेरे लिए काम किया।
अनु

23

मेरे द्वारा पाया गया सबसे सरल तरीका है, DigiCert से https://www.digicert.com/digicert-root-certports.htm#roots पर "DigiCert High Assurance EV Root CA" डाउनलोड और उपयोग करना है।

आप एड्रेस बार में लॉक आइकन पर क्लिक करके या अपने geek क्रेडेंशियल को ओपनस्स्ल का उपयोग करके प्रमाणित जारीकर्ता को सत्यापित करने के लिए https://pypi.python.org/ पर जा सकते हैं :

$ openssl s_client -connect pypi.python.org:443
CONNECTED(00000003)
depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro,/O=Python Software Foundation/CN=www.python.org
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA

प्रमाणपत्र श्रृंखला में अंतिम CN मान CA का नाम है जिसे आपको डाउनलोड करने की आवश्यकता है।

एक बार के प्रयास के लिए, निम्नलिखित करें:

  1. DigiCert से CRT डाउनलोड करें
  2. CRT को PEM प्रारूप में बदलें
  3. PEM_CERT पर्यावरण चर को PEM फ़ाइल के पथ पर निर्यात करें

(अंतिम पंक्ति मानती है कि आप बैश शेल का उपयोग कर रहे हैं) पाइप चलाने से पहले।

curl -sO http://cacerts.digicert.com/DigiCertHighAssuranceEVRootCA.crt 
openssl x509 -inform DES -in DigiCertHighAssuranceEVRootCA.crt -out DigiCertHighAssuranceEVRootCA.pem -text
export PIP_CERT=`pwd`/DigiCertHighAssuranceEVRootCA.pem

इसे फिर से प्रयोग करने योग्य बनाने के लिए, DigiCertHighAssuranceEVRootCA.crt को कहीं भी सामान्य रखें और अपने ~ / .bashrc में तदनुसार PIP_CERT निर्यात करें।


4
हमारी कंपनी के रूट CA को PIP_CERT वैरिएबल में एक्सपोर्ट करने के लिए अपने जवाब का इस्तेमाल किया और अंत में 'पाइप - सर्टिफिकेट सर्टिफिकेट' सहित अन्य सभी चीजों को आजमाने के बाद आपके काम किया ... बस पैकेज इंस्टॉल करें। BIG +1 - हाँ हमारे पास फायरवाल / प्रॉक्सी / utm है।
मार्लोन

मैक मोजवे पर यह अब भी मेरे लिए विफल रहा। मैंने ठीक 3 चरणों का पालन किया और अभी भी मुझे "त्रुटि: पाइप टीएलएस / एसएसएल की आवश्यकता वाले स्थानों से कॉन्फ़िगर किया गया है, हालांकि पायथन में एसएसएल मॉड्यूल उपलब्ध नहीं है"। मैंने कोशिश की - मेजबान और विकल्प विकल्प और पाइप काम नहीं करेंगे। मैंने पाइप को अपग्रेड करने की कोशिश की और एसएसएल त्रुटि मिली। मैंने कर्ल के साथ खरोंच से पाइप स्थापित किया और फिर भी मुझे पाइप चलाने पर त्रुटि मिलती है। पाइप को खोदने और कोंडा से चिपके रहने का समय :(
user1255933

21

समस्या को हल करने के लिए आपके पास निम्नलिखित संभावनाएँ हैं CERTIFICATE_VERIFY_FAILED:

  • HTTPS (जैसे --index-url=http://pypi.python.org/simple/) के बजाय HTTP का उपयोग करें ।
  • वैकल्पिक CA बंडल को निर्दिष्ट करने के लिए चर --cert <trusted.pem>या CA_BUNDLEचर का उपयोग करें ।

    उदाहरण के लिए, आप अपने सिस्टम में वेब-ब्राउज़र और आयात प्रमाणपत्र से असफल URL पर जा सकते हैं।

  • python -c "import ssl; print(ssl.get_default_verify_paths())"वर्तमान एक की जांच करने के लिए चलाएँ (यदि मौजूद है तो सत्यापित करें)।

  • ओपनएसएसएल में पर्यावरण की एक जोड़ी है ( SSL_CERT_DIR, SSL_CERT_FILE) जिसका उपयोग विभिन्न प्रमाणपत्र डेटाबेस PEP-476 को निर्दिष्ट करने के लिए किया जा सकता है ।
  • --trusted-host <hostname>होस्ट को विश्वसनीय के रूप में चिह्नित करने के लिए उपयोग करें ।
  • अजगर उपयोग में verify=Falseलिए requests.get(देखें: एसएसएल प्रमाणपत्र सत्यापन )।
  • --proxy <proxy>प्रमाणपत्र जांच से बचने के लिए उपयोग करें ।

और पढ़ें: सॉकेट ऑब्जेक्ट्स के लिए TLS / SSL आवरण - प्रमाणपत्र सत्यापित करना


आपके पहले बिंदु से, मैं HTTP को पाइप कमांड के साथ कैसे निर्दिष्ट करूं?
रेज़िनज

1
@rayzinnz मैंने उदाहरण जोड़ा है।
केनोर्ब

16

समय और दिनांक सही सेट करें!

मेरे लिए, यह पता चला कि मेरी तारीख और समय रास्पबेरी पाई पर गलत था। इसका परिणाम यह हुआ कि सभी SSL और HTTPS कनेक्शन विफल हो गए, https://files.pythonhosted.org/ सर्वर का उपयोग कर ।

इसे इस तरह से अपडेट करें:

sudo date -s "Wed Thu  23 11:12:00 GMT+1 2018"
sudo dpkg-reconfigure tzdata

या सीधे Google के समय जैसे:

रेफरी: https://superuser.com/a/635024/935136

sudo date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
sudo dpkg-reconfigure tzdata

मुझे घंटों तक पागल करता रहा - इसके लिए धन्यवाद। पीआई का समय मेरे द्वारा 10 दिनों के लिए बंद हो गया था (यह प्रतीत होता है) पाइप स्थापित करने के दौरान सभी प्रकार की त्रुटियां।
स्टीवजे

13

मैं हाल ही में अपनी कंपनी के वेब सामग्री फ़िल्टर के कारण इस समस्या में भाग गया, जो अपने प्रमाणपत्र प्राधिकरण का उपयोग करता है ताकि वह SSL ट्रैफ़िक को फ़िल्टर कर सके। PIP मेरे मामले में सिस्टम के CA प्रमाणपत्रों का उपयोग नहीं करता है, जो आपके द्वारा उल्लिखित त्रुटि का उत्पादन करता है। पीआईपी को संस्करण 1.2.1 में अपग्रेड करने से समस्याओं का अपना सेट बाद में प्रस्तुत हुआ, इसलिए मैं पायथन 3.4 के साथ आए मूल संस्करण पर वापस चला गया।

मेरा वर्कअराउंड काफी सरल है: उपयोग करें easy_install। या तो यह (पुराने PIP संस्करण की तरह) certs की जांच नहीं करता है, या यह सिस्टम certs का उपयोग करना जानता है क्योंकि यह मेरे लिए हर बार काम करता है और मैं अभी भी easy_install के साथ स्थापित संकुल की स्थापना रद्द करने के लिए PIP का उपयोग कर सकता हूं।

यदि वह काम नहीं करता है और आप उस नेटवर्क या कंप्यूटर तक पहुंच प्राप्त कर सकते हैं, जिसमें समस्या नहीं है, तो आप हमेशा अपना निजी PyPI सर्वर सेटअप कर सकते हैं: दर्पण के बिना स्थानीय स्वयं के पीपीआई रिपॉजिटरी इंडेक्स कैसे बनाएं?

मैंने लगभग तब तक किया जब तक कि मैंने easy_installअंतिम खाई के प्रयास के रूप में उपयोग नहीं किया।


एक ही मुद्दा यहाँ। एक और काम यह है कि कंपनी के रूट सर्टिफिकेट को एक फाइल के रूप में एक्सपोर्ट किया जाए और pipइसे इस्तेमाल करने के लिए कहा जाए --cert MyCompanyRootCA.crt
glibdud

10

आप https के बजाय http का उपयोग करके एसएसएल त्रुटि को बायपास करने का प्रयास कर सकते हैं। बेशक यह सुरक्षा के लिहाज से इष्टतम नहीं है , लेकिन अगर आप जल्दी में हैं तो यह चाल चलनी चाहिए:

pip install --index-url=http://pypi.python.org/simple/ linkchecker

1
मुझे आपके सुझाव पर काम करने की उम्मीद थी। Crazily मुझे पहले एक ही त्रुटि मिलीCould not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
जेरेमी कुक

3
ठीक है, इसलिए एक और समाधान यहाँ उपलब्ध टारगेज पैकेज को डाउनलोड कर रहा है। यहाँ उपलब्ध है pypi.python.org/pypi/LinkChecker/9.3 और इसे स्थापित करने के साथ: पाइप स्थापित करें LinkChecker-9.3.tar.gz
Augusto Destrero

3
लेकिन अगर आप जिस पैकेज को स्थापित करना चाहते हैं उसमें निर्भरताएँ हैं जिन्हें आपको डाउनलोड करना है और सभी निर्भरताओं को भी स्थापित करना है, यदि वे कई हैं तो यह एक बुरा सपना बन सकता है।
अगस्तो डेस्टेरो

1
मेरे लिए, मुझे whl डाउनलोड करना होगा (मेरे मामले के लिए)। इसने उन निर्भरताओं को उठाया जो tar.gz द्वारा एकत्र नहीं की गई थीं ... इसलिए, शायद whl @baxeico python -m pip की पंक्तियों के साथ एक और विकल्प है pyserial-3.4-py2.py3-none-any.whl मेरे लिए इनमें से कोई भी काम नहीं किया गया: 1. - cert cert.pem 2. कंपनी प्रमाणपत्र निर्यात करना, पीईएम में परिवर्तित करना 3. cygwin में easy_install 4. -सम्मित-मेज़बान
charo

1
अब लोंग 2017 के रूप में काम करते हैं - HTTP एक्सेस पूरी तरह से कट गया है। mail.python.org/pipermail/distutils-sig/2017-October/…
gbtimmon

8

उपयोग के उत्तर

pip install --trusted-host pypi.python.org <package>

काम। लेकिन आपको जांचना होगा कि क्या रीडायरेक्ट हैं या कैश pipहिट है। विंडोज 7 के साथ pip 9.0.1, मुझे भागना पड़ा

pip install \
  --trusted-host pypi.python.org \
  --trusted-host pypi.org \
  --trusted-host files.pythonhosted.org \
  <package>

आप इन्हें वर्बोज़ ध्वज के साथ पा सकते हैं।


7

मैंने पाइप 1.2.1 को easy_install के साथ स्थापित किया और पाइप के नवीनतम संस्करण (6.0.7 उस समय) में अपग्रेड किया जो मेरे मामले में पैकेज स्थापित करने में सक्षम है।

easy_install pip==1.2.1
pip install --upgrade pip

7

आपके पास 4 विकल्प हैं:

प्रमाण पत्र को पैरामीटर के रूप में उपयोग करना

$ pip install --cert /path/to/mycertificate.crt linkchecker

में एक प्रमाण पत्र का उपयोग करना pip.conf

यह फ़ाइल बनाएँ:

$HOME/.pip/pip.conf (Linux)

%HOME%\pip\pip.ini (Windows)

और इन पंक्तियों को जोड़ें:

[global]
cert = /path/to/mycertificate.crt

प्रमाणपत्र को अनदेखा करना और HTTP का उपयोग करना

$ pip install --trusted-host pypi.python.org linkchecker

प्रमाणपत्र को अनदेखा करना और एक pip.conf में HTTP का उपयोग करना

यह फ़ाइल बनाएँ:

$HOME/.pip/pip.conf (Linux)

%HOME%\pip\pip.ini (Windows)

और इन पंक्तियों को जोड़ें:

[global]
trusted-host = pypi.python.org

स्रोत


6

सबसे पहले,

    pip install --trusted-host pypi.python.org <package name>

मेरे लिए काम नहीं किया। मुझे CERTIFICATE_VERIFY_FAILED त्रुटि मिलती रही। हालाँकि, मैंने उन त्रुटि संदेशों पर ध्यान दिया, जिनमें उन्होंने 'pypi.org' साइट का संदर्भ दिया था। इसलिए, मैंने इसे pypi.python.org के बजाय विश्वसनीय होस्ट नाम के रूप में उपयोग किया। वह लगभग मुझे वहां मिल गया; लोड अभी भी CERTIFICATE_VERIFY_FAILED के साथ विफल हो रहा था, लेकिन बाद के बिंदु पर। उस वेबसाइट का संदर्भ ढूंढना जो विफल हो रही थी, मैंने इसे एक विश्वसनीय होस्ट के रूप में शामिल किया। आखिरकार मेरे लिए क्या काम किया गया:

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package name>

5

मुझे यकीन नहीं है कि यह संबंधित है, लेकिन मुझे एक समान समस्या थी जो इन फ़ाइलों को एनाकोंडा 3 / लाइब्रेरी / बिन से एनाकोंडा 3 / डीएलएल में कॉपी करके तय की गई थी:

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll


एनाकोंडा 2019.03 के साथ मैंने <Anaconda3 फ़ोल्डर> / लाइब्रेरी / बिन से <Anaconda3> / DLLs libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssh2.dll libssl-1_1-x64.dll libssl- की निम्न फ़ाइलों की प्रतिलिपि बनाई है। 1_1-x64.pdb तब मैं एक कनेक्टटाइमआउट त्रुटि जोड़ता हूं, इसलिए प्रॉक्सी कॉन्फ़िगरेशन अपडेट किया जाता है। कॉन्डार्क
मोर्डिकस एटक्बिटस

काम करता है। यार यू आर जेनियस! मैं 1.5 घंटे के लिए मंचों पर घूम रहा हूं, बस इस कम और सरल समाधान को खोजने के लिए।
ivan866

4

pip install ftputilActivePython 2.7.8, ActivePython 3.4.1, और 64-बिट Windows 7 एंटरप्राइज़ पर "स्टॉक" Python 3.4.2 के साथ प्रयास करने में यही समस्या थी । ओपी के समान त्रुटियों के साथ सभी प्रयास विफल रहे।

1.2.1 पाइप को अपग्रेड करके पायथन 3.4.2 के लिए समस्या के आसपास काम किया: easy_install pip==1.2.1( https://stackoverflow.com/a/16370731/234235 देखें )। उसी फिक्स ने ActivePython 2.7.8 के लिए भी काम किया।

मार्च 2013 में रिपोर्ट किया गया बग अभी भी खुला है: https://github.com/pypa/pip/issues/829


यह मेरे लिए भी काम किया। हालांकि यह पाइप के पुराने संस्करण को डाउनग्रेड करने के लिए पहली जगह में एक बुरा विचार हो सकता है, मैं पुराने django पैकेज के साथ काम कर रहा था, इसलिए पुराने पाइप संस्करण वास्तव में अन्य पैकेजों के साथ मेल खा रहा था।
mknaf

अंक 829 अब बंद है।
ओरतमाला लोकनी

3

इस पृष्ठ पर मेरे लिए कुछ भी काम नहीं किया, जब तक कि मैंने यह देखने के लिए --verbose विकल्प का उपयोग नहीं किया कि यह pypi.python.org के बजाय files.pythonhosted.org को प्राप्त करना चाहता था:

pip install --trusted-host files.pythonhosted.org <package_name>

तो URL की जाँच करें कि यह वास्तव में --verbose विकल्प के माध्यम से विफल हो रहा है।


2

मैंने अपने पाइप को हटाकर और पाइप के पुराने संस्करण को स्थापित करके इस समस्या को हल किया: https://pypi.python.org/pypi/pip/1.2.1


हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं। - रिव्यू से
apomene

@apomene कैसे ओपी माना जाता है include the essential parts of the answer hereक्योंकि यह एक बाइनरी फ़ाइल का लिंक है ...?
थॉमस अयूब

@ThomasAyoub, मुझे विश्वास है कि आप पहले से ही जानते हैं, कि उपर्युक्त संदेश एसओ से भरा हुआ है, जब एक उत्तर को केवल लिंक उत्तर के रूप में चिह्नित करते हुए
apomene

@apomene जो मेरे प्रश्न का उत्तर नहीं देता है, मैं अभी भी नहीं देखता कि ओपी क्या जोड़ सकता है / जोड़ना चाहिए?
थॉमस अय्यूब

1
@ThomasAyoub, आगे विस्तृत करने के लिए, मेरी टिप्पणी (SO) इंगित करती है कि प्रश्न छोटा है और केवल लिंक है, जिसका अर्थ है कि यह बेहतर टिप्पणी हो सकती है। मेरा इरादा स्पष्ट रूप से यह बताने का नहीं था कि ओपी को लिंक को फिर से जोड़ने के विवरणों को जोड़ना चाहिए, लेकिन यह इस सवाल का जवाब क्यों देता है।
apomene

2

"Https" को अनदेखा करने के लिए आप यह कोशिश कर सकते हैं:

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [your package..]

1
यदि आपको पाइप संस्करण के साथ अन्य समस्याएं भी हैं, तो आप यह कोशिश कर सकते हैं pip install --trusted-host pypi.python.org --upgrade pip –
Smaillns

2

एक समाधान ( विंडोज के लिए ) फ़ोल्डर pip.iniपर नामक एक फ़ाइल बनाने के लिए है (यदि यह मौजूद नहीं है तो फ़ोल्डर बनाएं) और निम्नलिखित विवरण डालें:%AppData%\pip\

[global]
cert = C:/certs/python_root.pem
proxy = http://my_user@my_company.com:my_password@proxy_ip:proxy_port

... और फिर हम इंस्टाल इंस्ट्रक्शन को निष्पादित कर सकते हैं:

pip3 install PyQt5

एक अन्य विकल्प प्रॉक्सी और प्रमाणपत्र के लिए तर्कों का उपयोग करके पैकेज स्थापित करना है ...

$ pip3 install --proxy http://my_user@my_company.com:my_password@proxy_ip:proxy_port \
   --cert C:/certs/python_root.pem PyQt5

प्रमाण पत्र *.cerफ़ाइलों को आवश्यक *.pemप्रारूप में परिवर्तित करने के लिए निम्नलिखित निर्देश पर अमल करें:

$ openssl x509 -inform der -in python_root.cer -out python_root.pem

आशा है कि यह किसी की मदद करता है!



प्रॉक्सी की जरूरत नहीं थी, बस प्रमाण पत्र। मैं भागा; pip3.6 config set global.cert '/<path>/server.crt'
avatarofhope2

2

मेरे मामले में यह एसएसएल प्रमाणपत्र मेरी कंपनी के आंतरिक सीए द्वारा हस्ताक्षरित होने के कारण था। वर्कअराउंड का उपयोग करने से pip --certमदद नहीं मिली, लेकिन निम्नलिखित पैकेज ने किया:

pip install pip_system_certs

देखें: https://pypi.org/project/pip-system-certs/

यह पैकेज डिफ़ॉल्ट सिस्टम स्टोर से प्रमाणपत्र का उपयोग करने के लिए रनटाइम पर पाइप और अनुरोधों को पैच करता है (बंडल किए गए सेर्ट्स सीए के बजाय)।

यह उन सर्वरों को tls / ssl कनेक्शन सत्यापित करने के लिए पाइप की अनुमति देगा, जिनके प्रमाण आपके सिस्टम द्वारा इंस्टॉल किए गए हैं।


1
ऐसा लगता है कि [SSL: CERTIFICATE_VERIFY_FAILED] त्रुटि को हटाने के लिए pip_sysem_certs को स्थापित करने की आवश्यकता है, समस्या यह है कि इसे स्थापित करने की कोशिश कर रहा है [SSL: CERTIFICATE_VERIFY_FAILED] त्रुटि ...
एथोस

यह किसी समय में एक समाधान हो सकता है, लेकिन pip_system_certsमेरे पायथन वातावरण को पूरी तरह से तोड़ दिया, और इस कारण से यह एक अच्छा जवाब नहीं है। Pip_system_certs स्थापित न करें। अधिक जानकारी के लिए stackoverflow.com/questions/27835619/… देखें ।
hrr53

1

मेरे लिए यह इसलिए है क्योंकि पहले मैं स्क्रिप्ट चला रहा हूं जो प्रॉक्सी (फिडलर) सेट कर रहा है, कंसोल को फिर से खोल रहा है या रिबूट समस्या को ठीक करता है।


Fiddler को "डिक्रिप्ट HTTPS ट्रैफिक" को "ब्राउजर्स से केवल ..." ऑप्शन में सेट करके बाईपास किया जा सकता है। यह मेरे लिए मुद्दा तय किया।
22

1

हाल ही में मुझे दृश्य स्टूडियो 2015 के साथ अजगर 3.6 में इसी मुद्दे का सामना करना पड़ा। 2 दिन बिताने के बाद, मुझे इसका समाधान मिला और मेरे लिए यह ठीक रहा।

पाइप का उपयोग करके या दृश्य स्टूडियो से numpy को स्थापित करने का प्रयास करते समय मुझे त्रुटि मिली, numpy एकत्रित करना URL https://pypi.python.org/simple/numpy/ प्राप्त नहीं कर सका। : ssl प्रमाणपत्र की पुष्टि करने में समस्या थी: [SSL: CERTIFICATE_VERIFY_FAILED] प्रमाणपत्र सत्यापित विफल हुआ (_ssl.c: 748) - लंघन एक ऐसा संस्करण नहीं मिला जो आवश्यकता को संतुष्ट करता हो

संकल्प :

विंडोज ओएस के लिए

  1. खुले -> "% appdata%" मौजूद नहीं है, तो "पाइप" फ़ोल्डर बनाएँ।
  2. पाइप फ़ोल्डर में "pip.ini" फ़ाइल बनाएं।
  3. फ़ाइल संपादित करें और लिखें
    [वैश्विक]
    विश्वसनीय-होस्ट = pypi.python.org फ़ाइल सहेजें और बंद करें। अब पाइप / विज़ुअल स्टूडियो का उपयोग करके इंस्टॉल करें यह ठीक काम करता है।

1

मेरे मामले में, मैं न्यूनतम अल्पाइन डॉकटर छवि में पायथन चला रहा था। यह रूट CA प्रमाणपत्र गायब था। ठीक कर:

apk update && apk add ca-certificates


1

वालस्टीन के जवाब से मुझे मदद मिली।

मुझे अपने पीसी पर कहीं भी pip.ini फाइल नहीं मिली। तो निम्नलिखित किया।

  1. AppData फ़ोल्डर में गया। आप कमांड प्रॉम्प्ट को खोलकर ऐपडाटा फ़ोल्डर प्राप्त कर सकते हैं और ईको% ऐपडाटा% टाइप कर सकते हैं।

कमांड प्रॉम्प्ट का उपयोग करके AppData स्थान

या बस विंडोज़ एक्सप्लोरर में% AppData% टाइप करें।

विंडोज़ एक्सप्लोरर में AppData स्थान

  1. उस appdata फ़ोल्डर के अंदर पाइप नामक एक फ़ोल्डर बनाएँ।

  2. उस पाइप फ़ोल्डर में, जिसे आपने अभी बनाया था, pip.ini नामक एक साधारण टेक्स्टफाइल बनाएं

  3. अपनी पसंद के एक साधारण संपादक का उपयोग करके उस फ़ाइल में निम्नलिखित कॉन्फिगर सेटिंग्स को विगत करें।

pip.ini फ़ाइल:

[list]
format=columns

[global]
trusted-host = pypi.python.org pypi.org

अब आप जाने के लिए अच्छा होना चाहिए।


1

मुझे इसी तरह के मुद्दे का सामना करना पड़ा। समाधान है कि मेरे लिए 1) python 2.7 2 की स्थापना रद्द करें) python27 फ़ोल्डर 3 हटाएं) नवीनतम अजगर को पुनर्स्थापित करें


0

मेरे लिए सुझाए गए तरीकों में से किसी ने भी काम नहीं किया - प्रमाणित, HTTP, विश्वसनीय-होस्ट का उपयोग करना।

मेरे मामले में पैकेज के एक अलग संस्करण पर स्विच करना (इस उदाहरण में paho-mqtt 1.3.0 के बजाय paho-mqtt 1.3.1) काम किया।

ऐसा लगता है कि समस्या उस पैकेज संस्करण के लिए विशिष्ट थी।


0

अगर आपके सिस्टम में कुछ प्रमाण-पत्र गायब हैं, तो आपको यह समस्या हो सकती है। ओपन-सेट पर स्थापित सीए-सर्टिफिकेट-मोज़िला

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