pip instala nu reușește cu "eroare de conexiune: [SSL: CERTIFICATE_VERIFY_FAILED] certificat verificați dacă nu a reușit (_ssl.c:598)"

Eu sunt foarte nou la Python și încercarea de a `> pip instala linkchecker pe Windows 7. Unele note:

  • pip instala nu este indiferent la pachet. De exemplu, `> pip instala scrapy, de asemenea, rezultate în eroare SSL.
  • Vanilie instala Python 3.4.1 incluse pip 1.5.6. Primul lucru pe care am încercat să fac a fost să instalați linkchecker. Python 2.7 a fost deja instalat, acesta a venit cu ArcGIS. python și pip nu au fost disponibile din linia de comandă până când am instalat 3.4.1.
  • > pip căutare linkchecker funcționează. Poate că este pentru că pip căutare nu verifica site-ul's certificat SSL.
  • Eu sunt într-o companie de rețea, dar noi nu mergem printr-un proxy pentru a ajunge la Internet.
  • Fiecare companie de calculator (inclusiv a mea) are o Autoritate de certificare Rădăcină de Încredere, care este folosit pentru diverse motive, inclusiv permițând monitorizarea TLS trafic https://google.com. Nu știu dacă asta are ceva de-a face cu asta.

Iată conținutul meu pip.log după rularea pip instala 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
Comentarii la întrebare (7)

Puteți ignora SSL erori de setare pypi.org și files.pythonhosted.org ca de încredere de gazde.

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

Notă: Cândva în aprilie 2018, Piton Pachet Index a fost migrat de la pypi.python.org " la " pypi.org`. Acest lucru înseamnă "de încredere-host" comenzi folosind vechiul domeniu nu mai funcționează.

Fix Permanent

De la lansarea pip 10.0, ar trebui să fie capabil de a repara această permanent doar prin modernizarea pip în sine:

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

Sau doar prin reinstalarea pentru a obține cea mai recentă versiune:

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

(... și apoi fugi get-pip.py cu relevante interpretorul Python).

pip instala <otherpackage> ar trebui să funcționeze doar după asta. Dacă nu, atunci va trebui să facă mai mult, după cum se explică mai jos.


Poate doriți să se adaugă încredere gazde și proxy pentru a-ți config.

pip.ini (Windows) sau pip.conf (unix)

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

Soluții alternative (mai Puțin sigure)

Cele mai multe dintre răspunsuri ar putea reprezenta o problemă de securitate.

Două soluții care vă ajută în instalarea cele mai multe dintre pachetele python cu usurinta ar fi:

  • Utilizarea easy_install: dacă ești prea leneș și don't vreau să pierd mult timp, folosesc easy_install `. Rețineți că unele pachete câștigat't fi găsit sau se vor da mici erori.
  • Utilizarea Roții: download Roata de pachetul python și de a folosi pip comanda pip instala wheel_package_name.whl pentru a instala pachetul.
Comentarii (40)

Puteți specifica un cert cu acest param:

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

A se vedea: Docs » Ghid de Referință » pip

Dacă specificarea compania ta's rădăcină cert nu't lucru poate cURL va lucra: http://curl.haxx.se/ca/cacert.pem

Trebuie să utilizați un fișier PEM, și nu un fișier CRT. Dacă aveți un fișier CRT veți avea nevoie de a a converti fișierul la PEM Există rapoarte în comentarii că acum lucrează cu un fișier CRT dar nu am verificat.

De asemenea, verificați: SSL Cert Verificare.

Comentarii (11)

kenorb răspunde este foarte util (si mare!).
Printre soluții, poate că acest lucru este cel mai simplu: --încredere-gazdă

De exemplu, în acest caz, puteți face

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

Pem fișier(sau orice altceva) este inutilă.

Comentarii (2)

Pentru mine problema a fost rezolvată prin crearea unui folder pip, cu un fișier: pip.ini în C:\Users\<nume de utilizator>\AppData\Roaming\ e.g:

C:\Users\\AppData\Roaming\pip\pip.ini

În interiorul ei am scris:

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

Am repornit python, și apoi pip permanent încredere aceste site-uri, și le-a folosit pentru a descărca pachete de.

Dacă poți't găsi Folderul AppData pe windows, scrie%appdata%` în file explorer și ar trebui să apară.

Comentarii (4)

Răspunsurile sunt destul de similare și un pic confuz. În cazul meu, certificate în compania mea's rețea a fost problema. Am fost capabil de a lucra în jurul valorii de problema folosind:

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

Cum se vede aici. De -vvv argument poate fi uitat câteva daca verbose de ieșire nu este necesară

Comentarii (2)

Cel mai simplu mod de am'am găsit, este de a descărca și de a folosi "DigiCert Asigurare de Mare EV Root CA" de la DigiCert la https://www.digicert.com/digicert-root-certificates.htm#roots

Puteți vizita https://pypi.python.org/ pentru a verifica cert emitent, făcând clic pe pictograma de blocare în bara de adrese, sau crește cred tocilar folosind openssl:

$ 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

Ultima NC valoare în lanțul de certificate este numele de ca care aveți nevoie pentru a descărca.

Pentru un efort, de a face următoarele:

  1. Download CRT de la DigiCert
  2. Converti CRT a format PEM
  3. Exporta PIP_CERT variabila de mediu la calea de fișier PEM

(ultima linie presupune utilizarea bash shell) înainte de a rula pip.

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

Pentru a face acest re-utilizabile, pune DigiCertHighAssuranceEVRootCA.crt undeva comune și de export PIP_CERT în mod corespunzător în fișierul ~/.bashrc.

Comentarii (1)

Fix Permanent

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

De exemplu, pentru:

pip install  --trusted-host pypi.org --trusted-host files.pythonhosted.org
Comentarii (0)

Pentru a rezolva această problemă o dată și pentru toate, puteți verifica dacă aveți un pip.conf` de fișier.

Acest lucru este în cazul în care pip.conf ar trebui să fie, conform documentația:

Pe Unix implicit fișierul de configurare este: $HOME/.config/pip.conf care respectă XDG_CONFIG_HOME variabilă de mediu.

Pe macOS fișierul de configurare este $HOME/Library/Application Support/pip.conf dacă directorul $HOME/Library/Application Support/pip există altceva $HOME/.config/pip.conf

Pe Windows fișierul de configurare este %APPDATA%\pip\pip.ini.

În interiorul unui virtualenv:

Pe de Unix, macOS fișierul este $VIRTUAL_ENV/pip.conf

Pe Windows fișierul este: %VIRTUAL_ENV%\pip.ini

Ta pip.conf ar trebui să arate astfel:

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

pip instala linkchecker "instalat" linkchecker fără a se plânge, după ce am creat pip.conf de fișier.

Comentarii (5)

Te've următoarele posibilități de a rezolva problema cu CERTIFICATE_VERIFY_FAILED:

  • Utilizarea HTTP în loc de HTTPS.
  • Utilizarea --cert <încredere.pem> " sau " CA_BUNDLE variabil pentru a specifica alternative CA bundle.

E. g. puteți merge la faptul că nu URL-ul din browser-ul și de import certificat rădăcină în sistemul dumneavoastră.

  • Run python-c "import ssl; print(ssl.get_default_verify_paths())" de a verifica cel actual (valida dacă există).
  • OpenSSL are o pereche de medii (SSL_CERT_DIR, SSL_CERT_FILE), care poate fi folosit pentru a specifica diferite certificat de datePEP-476.
  • Utilizarea --încredere-host <hostname> pentru a marca gazdă ca fiind de încredere.
  • În Python folosesc verifica=False "pentru" cereri.obține` (vezi: SSL Cert Verificare).
  • Utilizarea `--proxy pentru a evita certificat de controale.

Citeste mai mult la: TLS/SSL wrapper pentru soclu obiecte - Verificarea certificatelor.

Comentarii (0)

Setați Ora și Data corecte!

Pentru mine, a fost că data și ora a fost configurat pe Raspberry Pi. Rezultatul a fost că toate SSL și HTTPS conexiuni nu a reușit, folosind https://files.pythonhosted.org/ server.

Update astfel:

bash sudo data -s "Wed Thu 23 11:12:00 GMT+1 în 2018" sudo dpkg-reconfigure tzdata

Sau direct, de exemplu cu Google's timp:

Ref.: https://superuser.com/a/635024/935136

bash sudo data -s "$(curl-s-cap http://google.com | grep ^Data: | sed &#39;s/Data: // / g&#39;)" sudo dpkg-reconfigure tzdata

Comentarii (1)

Recent m-am întâlnit cu această problemă pentru compania mea's web filtru de conținut care utilizează propria Autoritate de certificare, astfel încât se poate filtra traficul SSL. PIP nu't par să fie folosind sistemul's certificate CA în cazul meu, a produce eroare de care ai vorbit. Declasarea PIP la versiunea 1.2.1 a prezentat propriul set de probleme mai târziu, așa că am mers înapoi la versiunea originală, care a venit cu Python 3.4.

Mea soluție este destul de simplu: utilizați easy_install. Nici nu't verificați cert (ca PIP versiune), sau nu știe să utilizeze sistemul cert pentru că funcționează de fiecare dată pentru mine și încă mai pot folosi PIP pentru a dezinstala pachete instalate cu easy_install.

Dacă asta nu't de lucru și puteți obține acces la o rețea sau un calculator care nu't fi problema, ai putea configura propriul dvs. personal PyPI server: https://stackoverflow.com/questions/18052217/how-to-create-local-own-pypi-repository-index-without-mirror

Aproape că am făcut asta până când am încercat, folosind easy_install ca un ultim efort.

Comentarii (1)

Puteți încerca pentru a ocoli eroare SSL utilizând http în loc de https. Desigur, acest lucru este nuoptim în termeni de securitate**, dar dacă sunteți într-o grabă ar trebui să facă truc:

pip install --index-url=http://pypi.python.org/simple/ linkchecker
Comentarii (9)

Răspunsurile la utilizarea

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

de muncă. Dar'll trebuie să verificați dacă există redirecționări sau cache pip este lovit. Pe Windows 7 cu pip 9.0.1, am avut pentru a rula

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

Puteți găsi aceste cu verbose pavilion.

Comentarii (0)

Ai 4 optiuni:

Folosind un certificat ca parametru

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

Folosind un certificat într-un pip.conf`

A crea acest fișier:

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

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

și adăuga aceste linii:

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

Ignorând certificat și folosind HTTP

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

Ignorând certificat și folosind HTTP într-un pip.conf

A crea acest fișier:

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

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

și adăuga aceste linii:

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

Sursa

Comentarii (0)

Am instalat pip 1.2.1 cu easy_install și actualizat la cea mai recentă versiune de pip (6.0.7 la timp), care este capabil de a instala pachete în cazul meu.

easy_install pip==1.2.1
pip install --upgrade pip
Comentarii (0)

Mai întâi de toate,

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

nu au de lucru pentru mine. Am păstrat obtinerea CERTIFICATE_VERIFY_FAILED eroare. Cu toate acestea, am observat din mesajele de eroare care au făcut referire la 'pypi.org' site-ul. Deci, am folosit acest lucru ca de încredere nume de gazdă în loc de pypi.python.org. Aproape că mi-a ajuns acolo; sarcina a fost încă faptul că nu cu CERTIFICATE_VERIFY_FAILED, dar la un moment ulterior. Găsirea trimitere la site-ul asta a fost faptul că nu am inclus-o ca o gazdă de încredere. Ceea ce în cele din urmă a lucrat pentru mine a fost:

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org 
Comentarii (0)

A avut aceeași problemă la încercarea de `pip instala ftputil cu ActivePython 2.7.8, ActivePython 3.4.1, și "stoc" Python 3.4.2 pe 64-bit Windows 7 Enterprise. Toate încercările au eșuat cu aceleași erori ca OP.

A lucrat în jurul valorii de problema pentru Python 3.4.2 de declasare a pip 1.2.1: easy_install pip==1.2.1 (a se vedea https://stackoverflow.com/a/16370731/234235). Același repara, de asemenea, a lucrat pentru ActivePython 2.7.8.

Bug-ul, a raportat în Martie 2013, este încă deschisă: https://github.com/pypa/pip/issues/829.

Comentarii (2)

Am'm nu sunt sigur dacă acest lucru este legat, dar am avut o problemă similară care a fost fixat prin copierea aceste fișiere de Anaconda3/Library/bin pentru a Anaconda3/Dll-uri :

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll

Comentarii (1)

Nimic de pe această pagină lucrat pentru mine, până când am folosit --verbose opțiunea de a vedea că a vrut să ajungă la files.pythonhosted.org mai degrabă decât pypi.python.org:

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

Deci, a verifica URL-ul pe care-l's, de fapt, nu pe prin intermediul --verbose opțiune.

Comentarii (0)

Am rezolvat aceasta problema prin scoaterea mea pip și instalarea versiune mai veche de pip: https://pypi.python.org/pypi/pip/1.2.1

Comentarii (5)