l'installazione di pip non riesce con "errore di connessione: [SSL: CERTIFICATE_VERIFY_FAILED] verifica del certificato non riuscita (_ssl.c: 598)"


397

Sono molto nuovo su Python e sto provando > pip install linkcheckersu Windows 7. Alcune note:

  • l'installazione di pip non riesce, indipendentemente dal pacchetto. Ad esempio, > pip install scrapyprovoca anche l'errore SSL.
  • L'installazione alla vaniglia di Python 3.4.1 includeva pip 1.5.6. La prima cosa che ho provato a fare è stato installare linkchecker. Python 2.7 era già installato, fornito con ArcGIS. pythone pipnon erano disponibili dalla riga di comando fino a quando non ho installato 3.4.1.
  • > pip search linkcheckerlavori. Forse perché la ricerca pip non verifica il certificato SSL del sito.
  • Sono in una rete aziendale ma non passiamo attraverso un proxy per raggiungere Internet.
  • Ogni computer aziendale (incluso il mio) dispone di un'autorità di certificazione radice attendibile che viene utilizzata per vari motivi, tra cui l'abilitazione del monitoraggio del traffico TLS su https://google.com . Non sono sicuro che abbia qualcosa a che fare con esso.

Ecco i contenuti del mio pip.log dopo l'esecuzione 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
Piuttosto il contrario! Python 3.4.1 e precedenti non eseguono la convalida del certificato per impostazione predefinita. Se avessi usato Python 3.4.2, avrei pensato che fosse questo il problema. (Vedi il numero 21013 e questo thread nella mailing list . Nota che quello è l'inizio di un thread piuttosto lungo.) Mi dispiace non aver potuto davvero aiutare!
Cody Piersall,

3
Controlla se hai il violinista aperto e chiudilo. Fiddler prova a rompere SSL e questo rompe il pip, quando chiudo il fiddler pip funziona per me. Quando chiudo il violinista tutto va bene
José Barbosa

Risposte:


641

-----> pip install gensim config --global http.sslVerifica falso

Basta installare qualsiasi pacchetto con l'istruzione "config --global http.sslVerify false"

È possibile ignorare gli errori SSL impostando pypi.orge files.pythonhosted.orgcome host attendibili.

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

Nota : a volte ad aprile 2018, l' indice del pacchetto Python è stato migrato da pypi.python.orga pypi.org. Ciò significa che i comandi "trusted-host" che utilizzano il vecchio dominio non funzionano più.

Correzione permanente

Dal rilascio di pip 10.0, dovresti essere in grado di risolvere questo problema in modo permanente semplicemente aggiornando pipse stesso:

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

O semplicemente reinstallandolo per ottenere l'ultima versione:

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

(... e quindi in esecuzione get-pip.pycon l'interprete Python pertinente).

pip install <otherpackage>dovrebbe funzionare dopo questo. In caso contrario, dovrai fare di più, come spiegato di seguito.


È possibile che si desideri aggiungere host e proxy attendibili al file di configurazione .

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

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

Soluzioni alternative (meno sicure)

La maggior parte delle risposte potrebbe costituire un problema di sicurezza.

Due delle soluzioni alternative che aiutano a installare facilmente la maggior parte dei pacchetti python sarebbero:

  • Utilizzo di easy_install : se sei davvero pigro e non vuoi perdere molto tempo, usa easy_install <package_name>. Nota che alcuni pacchetti non saranno trovati o daranno piccoli errori.
  • Utilizzo di Wheel : scarica la ruota del pacchetto python e usa il comando pip pip install wheel_package_name.whlper installare il pacchetto.

7
Il tuo aggiornamento ha funzionato per me. Nel mio caso il firewall aziendale si inserisce come host attendibile per le connessioni SSL. Ho pensato che la configurazione del proxy fosse sbagliata, ma l'aggiunta di dettagli ha mostrato che il problema era SSL. La modifica dell'indice-url ha risolto il problema.
peater,

11
Fantastico, grazie! L'host di fiducia sembra essere sufficiente, vale a dire. pip install --trusted-host pypi.python.org pypi_package. L'uso --verbosemostra che senza --trusted-host, la connessione HTTPS fallisce, mentre la stessa connessione HTTPS viene tentata (non HTTP) con --trusted-hostma ha esito positivo.
Oliver,

12
L'uso della versione HTTP (e quindi anche la sua fiducia) non è anche un rischio per la sicurezza?
Paŭlo Ebermann,

3
puoi accorciare il parametro --index-url, prova anche questo comando dovrebbe essere ok:pip install --trusted-host pypi.python.org pythonPackage
Alter Hu

8
per me non funziona. Esecuzione di mac os high sierra su macbookpro 15 "Python 2.7 pip 9.0.1 Ho provato entrambi: sudo -H pip install --trusted-host pypi.python.org numpy e sudo pip install --trusted-host pypi.python.org intorpidito mi dà sempre lo stesso errore: "Si è verificato un problema a conferma del certificato ssl: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 versione protocollo di avviso (_ssl.c: 661) - skipping Impossibile trovare una versione che soddisfi i requisiti"
DaniPaniz

123

Puoi specificare un certificato con questo parametro:

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

Vedi: Documenti »Guida di riferimento» pip

Se specificare il certificato radice della tua azienda non funziona, forse funzionerà quello cURL: http://curl.haxx.se/ca/cacert.pem

È necessario utilizzare un file PEM e non un file CRT. Se hai un file CRT dovrai farlo convertirlo in PEM. Nei commenti ci sono rapporti che ora funziona con un file CRT ma non ho verificato.

Controlla anche: Verifica certificato SSL .


1
Il Curl è sicuro. Suggerirei di usarlo.
Steve Tauber,

1
@JeremyCook potrebbe essere il momento sul tuo server, se è in passato potrebbe essere il processo di verifica
Giovanni Bitliner,

1
Il formato CRT non è supportato, lo è solo il formato PEM. Dovrai convertire il formato CRT in PEM usando openssl. È inoltre necessario verificare che il bundle scaricato contenga la CA principale corretta. Si prega di consultare la mia risposta sopra per i dettagli: stackoverflow.com/a/28724886/41957 .
chnrxn,

1
@JeremyCook, il PEM / certs non proviene direttamente dalla terza parte da cui li hai scaricati. Hanno raccolto i certificati dalle fonti originali. Non è possibile per una terza parte generare un certificato di qualcun altro a meno che non disponga della chiave corretta (che solo la qualcun altro avrà).
chnrxn,

4
@endolith - Guardando pip.pypa.io/en/stable/user_guide/#configuration sembra che tu possa usare le variabili di ambiente o un pip.conffile per avere un riferimento permanente senza specificare il comando
Cinderhaze

63

La risposta di Kenorb è molto utile (e eccezionale!).
Tra le sue soluzioni, forse questa è la più semplice: --trusted-host

Ad esempio, in questo caso puoi farlo

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

Il file pem (o qualsiasi altra cosa) non è necessario.


Questo funziona anche con altri comandi comepip list --trusted-host pypi.python.org --outdated
Igor

61

Per me il problema è stato risolto creando una cartella pip, con un file: pip.ini in C:\Users\<username>\AppData\Roaming\ es:

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

Al suo interno ho scritto:

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

Ho riavviato Python, quindi ho eseguito il pip in modo permanente su questi siti e li ho usati per scaricare i pacchetti.

Se non riesci a trovare la cartella AppData su Windows, scrivi %appdata%in Esplora file e dovrebbe apparire.


Stranamente questo non aiuta sulla mia macchina Win10: /
mcandre

1
Al lavoro, ambiente Windows 10, usando l'emulatore della console Cmder. --trusted-host utilizzato per risolvere il problema "'SSLError (SSLCertVerificationError (1,' [SSL: CERTIFICATE_VERIFY_FAILED] verifica del certificato non riuscita: certificato autofirmato nella catena di certificati". Oggi ha smesso di funzionare. Ho inserito una copia della mia cartella pip ( tratto da ../AppData/Local/) in ../AppData/Roaming/ e tutto va di nuovo bene nel mio mondo di pitone locale. Grazie mille!
IdusOrtus,

1
Grande! Grazie mille. --trusted-host non funziona per me adesso, ma la tua soluzione aiuta.
Alexander Prokofyev,

1
Perché questo non è stato scaricato durante l'installazione di Python>
98Ed

Eccezionale! Stavo cercando errori relativi a GIT, proxy della società, SSL ed era semplicemente correlato a pip. Grazie e spero che questo commento porti qui persone confuse come me.
negas,

41

Le risposte sono abbastanza simili e un po 'confuse. Nel mio caso, i certificati nella rete della mia azienda erano il problema. Sono stato in grado di aggirare il problema utilizzando:

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

Come visto qui . L'argomento -vvv può essere omesso se non è richiesto un output dettagliato


10
Solo uno per risolvere il mio problema, grazie.
Gringo Suave,

Fantastico, l'unico che ha funzionato anche per me!
Ethikz,

Funziona perché oggi sono dietro un proxy che elimina il normale SSL. Normalmente non ho bisogno di specificare host fidati quando i grandi gestiscono la rete.
MrChrister,

questo funziona anche per me. sopra non ha funzionato
Srinath Ganesh il

32

Correzione permanente

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

Ad esempio:

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

24

Per risolvere questo problema una volta per tutte, puoi verificare di avere un pip.conffile.

Questo è dove pip.confdovresti essere, secondo la documentazione :

Su Unix il file di configurazione predefinito è: $HOME/.config/pip/pip.confche rispetta la variabile d'ambiente XDG_CONFIG_HOME.

Su macOS il file di configurazione è $HOME/Library/Application Support/pip/pip.confse la directory $HOME/Library/Application Support/pipesiste altro$HOME/.config/pip/pip.conf

Su Windows il file di configurazione è %APPDATA%\pip\pip.ini.

All'interno di un virtualenv:

Su Unix e macOS il file è $VIRTUAL_ENV/pip.conf

Su Windows il file è: %VIRTUAL_ENV%\pip.ini

Il tuo pip.confdovrebbe essere simile:

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

pip install linkcheckerinstallato linkcheckersenza lamentarsi dopo aver creato il pip.conffile.


1
$ HOME / Libreria / Supporto applicazioni / pip non esiste sul mio computer, esiste una posizione alternativa?
42shadow42

Sembra che la pipguida per l' utente sia stata aggiornata da quando ho pubblicato questa risposta. Ho aggiornato la mia risposta per macOS. Aiuta?
Alex-Antoine Fortin,

Non influisce sull'errore SSL sulla mia macchina Win10: /
mcandre

Non risolve il problema su MacOSX.
MoDJ,

Sono su macOS. Se hai installato python3 utilizzando, brewassicurati di utilizzare pip3e creare il file pip.confas $HOME/.config/pip/pip.conf. Ho lavorato per me.
anu,

23

Il modo più semplice che ho trovato è quello di scaricare e utilizzare la "CA radice di DigiCert High Assurance EV" da DigiCert all'indirizzo https://www.digicert.com/digicert-root-certificates.htm#roots

Puoi visitare https://pypi.python.org/ per verificare l'emittente del certificato facendo clic sull'icona a forma di lucchetto nella barra degli indirizzi o aumentare il tuo credito geek usando 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

L'ultimo valore CN nella catena di certificati è il nome della CA che è necessario scaricare.

Per uno sforzo una tantum, procedi come segue:

  1. Scarica il CRT da DigiCert
  2. Converti il ​​formato CRT in PEM
  3. Esporta la variabile d'ambiente PIP_CERT nel percorso del file PEM

(l'ultima riga presuppone che tu stia utilizzando la shell bash) prima di eseguire 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

Per renderlo riutilizzabile, metti DigiCertHighAssuranceEVRootCA.crt in un luogo comune ed esporta PIP_CERT di conseguenza nel tuo ~ / .bashrc.


4
Ho usato la tua risposta per esportare la CA principale della nostra azienda nella variabile PIP_CERT e, infine, dopo aver provato tutto il resto, incluso "pip --cert cert.pem", il tuo modo di lavorare ... basta installare il pacchetto pip. GRANDE +1 - sì, abbiamo un firewal / proxy / utm.
Marlon,

Questo non è ancora riuscito per me su Mac Mojave. Ho seguito esattamente i 3 passaggi e ancora ottengo "Errore: pip è configurato con posizioni che richiedono TLS / SSL, tuttavia il modulo ssl in Python non è disponibile". Ho provato tutte le opzioni --trusted-host e --cert e pip non funzionerà. Ho provato ad aggiornare pip e ho ottenuto l'errore SSL. Ho installato pip da zero con il ricciolo e continuo a ricevere l'errore quando eseguo pip. È ora di abbandonare il pip e attenersi alla conda :(
user1255933

21

Hai le seguenti possibilità per risolvere il problema con CERTIFICATE_VERIFY_FAILED:

  • Utilizzare HTTP anziché HTTPS (ad es --index-url=http://pypi.python.org/simple/ .).
  • Usa --cert <trusted.pem>oCA_BUNDLE variabile per specificare un bundle CA alternativo.

    Ad esempio, puoi accedere a un URL non riuscito dal browser Web e importare il certificato di root nel tuo sistema.

  • Esegui python -c "import ssl; print(ssl.get_default_verify_paths())"per verificare quello corrente (confermare se esiste).

  • OpenSSL ha una coppia di ambienti ( SSL_CERT_DIR, SSL_CERT_FILE) che possono essere usati per specificare diversi database di certificati PEP-476 .
  • Utilizzare --trusted-host <hostname>per contrassegnare l'host come attendibile.
  • In Python usare verify=Falseper requests.get(vedi: Verifica certificato SSL ).
  • Utilizzare --proxy <proxy>per evitare i controlli dei certificati.

Maggiori informazioni su: wrapper TLS / SSL per oggetti socket - Verifica certificati .


Dal tuo primo punto, come posso specificare HTTP con il comando pip?
Rayzinnz,

1
@rayzinnz Ho aggiunto l'esempio.
Kenorb,

16

Imposta ora e data corrette!

Per me, è venuto fuori che la mia data e ora erano configurate in modo errato su Raspberry Pi. Il risultato fu che tutte le connessioni SSL e HTTPS fallirono, usando il server https://files.pythonhosted.org/ .

Aggiornalo in questo modo:

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

O direttamente con, ad esempio, il tempo di Google:

Rif .: 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

Mi sta facendo impazzire da ore - grazie per quello. Il tempo di PI era scaduto di 10 giorni per me causando (sembrerebbe) tutti i tipi di errori durante l'installazione del pip.
SteveJ,

13

Di recente ho riscontrato questo problema a causa del filtro del contenuto Web della mia azienda che utilizza la propria autorità di certificazione in modo da poter filtrare il traffico SSL. PIP non sembra usare i certificati CA del sistema nel mio caso, producendo l'errore che hai citato. Il downgrade di PIP alla versione 1.2.1 ha presentato in seguito una serie di problemi, quindi sono tornato alla versione originale fornita con Python 3.4.

La mia soluzione è abbastanza semplice: usare easy_install . O non controlla i certificati (come la vecchia versione di PIP), o sa usare i certificati di sistema perché funziona ogni volta per me e posso ancora usare PIP per disinstallare i pacchetti installati con easy_install.

Se ciò non funziona e puoi accedere a una rete o a un computer che non presenta il problema, puoi sempre configurare il tuo server PyPI personale: come creare un indice di repository pypi locale senza mirror?

L'ho quasi fatto fino a quando non ho provato a usarlo easy_installcome ultimo sforzo.


Lo stesso problema qui. Un'altra soluzione alternativa è esportare il certificato radice dell'azienda come file e dire pipdi usarlo --cert MyCompanyRootCA.crt.
glibdud,

10

Puoi provare a bypassare l'errore SSL usando http invece di https. Ovviamente questo non è ottimale in termini di sicurezza , ma se hai fretta dovrebbe fare il trucco:

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

1
Mi aspettavo che il tuo suggerimento funzionasse. Pazzamente ho avuto gli stessi identici errori, incluso il primoCould not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Jeremy Cook,

3
Ok, quindi un'altra soluzione sta scaricando il pacchetto tar.gz disponibile qui pypi.python.org/pypi/LinkChecker/9.3 e installandolo con: pip install LinkChecker-9.3.tar.gz
Augusto Destrero

3
Ma se il pacchetto che si desidera installare ha dipendenze, è necessario scaricare e installare anche tutte le dipendenze, se sono molte, questo potrebbe diventare un incubo.
Augusto Destrero,

1
Per me, ho dovuto scaricare il whl (per il mio caso pyserial) e installarlo. Questo ha raccolto le dipendenze che non sono state raccolte dal tar.gz ... Quindi, forse whl è un'altra opzione sulla falsariga di @baxeico python -m pip install pyserial-3.4-py2.py3-none-any.whl Per me nessuno di questi ha funzionato: 1.cert cacert.pem 2. certificato dell'azienda esportatrice, conversione in PEM 3. easy_install in cygwin 4. --trusted-host
charo

1
Gli ormai lunghi funzionamenti a partire dal 2017: l'accesso HTTP è stato completamente interrotto. mail.python.org/pipermail/distutils-sig/2017-October/…
gbtimmon

8

Le risposte da usare

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

lavoro. Ma dovrai controllare se ci sono reindirizzamenti o cache pipsta colpendo. Su Windows 7 con pip 9.0.1, ho dovuto correre

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

Puoi trovarli con la bandiera dettagliata.


7

Ho installato pip 1.2.1 con easy_install e aggiornato all'ultima versione di pip (6.0.7 al momento) che è in grado di installare pacchetti nel mio caso.

easy_install pip==1.2.1
pip install --upgrade pip

7

Hai 4 opzioni:

Utilizzo di un certificato come parametro

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

Utilizzo di un certificato in a pip.conf

Crea questo file:

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

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

e aggiungi queste righe:

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

Ignorare il certificato e usare HTTP

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

Ignorare il certificato e usare HTTP in un pip.conf

Crea questo file:

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

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

e aggiungi queste righe:

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

fonte


6

Prima di tutto,

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

Non ha funzionato per me. Ho continuato a ricevere l'errore CERTIFICATE_VERIFY_FAILED. Tuttavia, ho notato nei messaggi di errore che si riferivano al sito "pypi.org". Quindi, ho usato questo come nome host attendibile invece di pypi.python.org. Mi ha quasi portato lì; il caricamento non riusciva ancora con CERTIFICATE_VERIFY_FAILED, ma in un secondo momento. Trovando il riferimento al sito Web che non funzionava, l'ho incluso come host di fiducia. Ciò che alla fine ha funzionato per me è stato:

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

5

Non sono sicuro che ciò sia correlato, ma ho avuto un problema simile che è stato risolto copiando questi file da Anaconda3 / Library / bin in Anaconda3 / DLL:

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll


Con Anaconda 2019.03 ho copiato i seguenti file da <cartella Anaconda3> / Libreria / bin in <Anaconda3> / DLL libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssh2.dll libssl-1_1-x64.dll libssl- 1_1-x64.pdb Quindi aggiungo un errore ConnectTimeout, quindi ho aggiornato la configurazione del proxy .condarc
MordicusEtCubitus

Lavori. Amico, sei GENIO! Sono stato in roaming nei forum per 1,5 ore, solo per trovare questa soluzione sottovalutata e semplice.
ivan866

4

Ho provato lo stesso problema pip install ftputil con ActivePython 2.7.8, ActivePython 3.4.1 e "stock" Python 3.4.2 su Windows 7 Enterprise a 64 bit. Tutti i tentativi sono falliti con gli stessi errori di OP.

Risolto il problema con Python 3.4.2 eseguendo il downgrade a pip 1.2.1: easy_install pip==1.2.1(consultare https://stackoverflow.com/a/16370731/234235 ). La stessa correzione ha funzionato anche per ActivePython 2.7.8.

Il bug, segnalato a marzo 2013, è ancora aperto: https://github.com/pypa/pip/issues/829 .


Questo ha funzionato anche per me. Mentre potrebbe sembrare una cattiva idea in primo luogo il downgrade a una versione precedente di pip, avevo a che fare con vecchi pacchetti django, quindi la vecchia versione pip corrispondeva effettivamente agli altri pacchetti.
mknaf,

Il numero 829 è ora chiuso.
Ortomala Lokni,

3

Nulla in questa pagina ha funzionato per me fino a quando non ho usato l'opzione --verbose per vedere che voleva arrivare a files.pythonhosted.org piuttosto che pypi.python.org:

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

Quindi controlla l'URL che in realtà non sta funzionando tramite l'opzione --verbose.


2

Ho risolto questo problema rimuovendo il mio pip e installando la versione precedente di pip: https://pypi.python.org/pypi/pip/1.2.1


Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
apomene,

@apomene come dovrebbe essere OP in include the essential parts of the answer herequanto è un collegamento a un file binario ...?
Thomas Ayoub,

@ThomasAyoub, credo che tu già sappia, che il messaggio sopra è riempito automaticamente da SO, quando si contrassegna una risposta come unica risposta di collegamento
apomene

@apomene che non risponde alla mia domanda, non vedo ancora quale OP potrebbe / dovrebbe aggiungere?
Thomas Ayoub,

1
@ThomasAyoub, Per approfondire, il mio commento (SO) indica che la domanda è breve e solo link, il che significa che potrebbe essere meglio un commento. La mia intenzione non era quella di dichiarare esplicitamente che OP dovrebbe aggiungere dettagli che regolano il collegamento, ma dettagli sul perché ciò risponda alla domanda.
apomene,

2

Puoi provare questo per ignorare "https":

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

1
se hai anche altri problemi con la versione pip puoi provare questo pip install --trusted-host pypi.python.org --upgrade pip –
Smaillns

2

Una soluzione ( per Windows ) è quella di creare un file chiamato pip.ininella %AppData%\pip\cartella (creare la cartella se non esiste) e inserire i seguenti dettagli:

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

... e quindi possiamo eseguire le istruzioni di installazione:

pip3 install PyQt5

Un'altra opzione è installare il pacchetto usando argomenti per proxy e certificato ...

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

Per convertire i *.cerfile del certificato nel *.pemformato richiesto , eseguire le seguenti istruzioni:

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

Spero che questo aiuti qualcuno!


1
Per altri sistemi operativi, dai un'occhiata alla risposta di Alex-Antoine Fortin
Dinei,

Non avevo bisogno del proxy, solo del certificato. Ho corso; pip3.6 config set global.cert '/<path>/server.crt'
avatarofhope2,

2

Nel mio caso era dovuto alla firma del certificato SSL da parte della CA interna della mia azienda. L'uso di soluzioni alternative come pip --certnon ha aiutato, ma il seguente pacchetto ha fatto:

pip install pip_system_certs

Vedi: https://pypi.org/project/pip-system-certs/

Questo pacchetto corregge pip e richiede in fase di esecuzione di utilizzare i certificati dall'archivio di sistema predefinito (anziché i certificati in bundle ca).

Ciò consentirà a pip di verificare le connessioni tls / ssl ai server il cui certificato è considerato attendibile dall'installazione del sistema.


1
sembra che sia necessario installare pip_sysem_certs per annullare l'errore [SSL: CERTIFICATE_VERIFY_FAILED], il problema è che, provando a installarlo, si è verificato l'errore [SSL: CERTIFICATE_VERIFY_FAILED] ...
athos,

Questa potrebbe essere stata una soluzione ad un certo punto nel tempo, ma ha pip_system_certscompletamente rotto il mio ambiente Python, e per questo motivo questa non è una buona risposta. Non installare pip_system_certs. Vedere stackoverflow.com/questions/27835619/… per ulteriori informazioni.
h0r53,

1

per me questo è perché in precedenza sto eseguendo uno script che imposta proxy (su fiddler), riapre la console o riavvia il problema.


Fiddler può essere aggirato impostando "Decrypt traffico HTTPS" su "... solo dai browser" in Strumenti | Opzioni. Ciò ha risolto il problema per me.
Tephyr,

1

Di recente ho riscontrato lo stesso problema in Python 3.6 con Visual Studio 2015. Dopo aver trascorso 2 giorni, ho ottenuto la soluzione e il suo funzionamento perfetto per me.

Sono arrivato sotto l'errore mentre provavo a installare numpy usando pip o da Visual Studio Raccolta numpy Impossibile recuperare l'URL https://pypi.python.org/simple/numpy/ : si è verificato un problema durante la conferma del certificato ssl: [SSL: CERTIFICATE_VERIFY_FAILED] verifica certificato non riuscita (_ssl.c: 748) - salto Impossibile trovare una versione che soddisfi il requisito numpy (dalle versioni:) Nessuna distribuzione corrispondente trovata per numpy

Risoluzione:

Per sistema operativo Windows

  1. apri -> "% appdata%" Crea cartella "pip" se non esiste.
  2. Nella cartella pip creare il file "pip.ini".
  3. Modifica il file e scrivi
    [global]
    trusted-host = pypi.python.org Salva e chiudi il file. Ora installa usando pip / visual studio funziona benissimo.

1

Nel mio caso, stavo eseguendo Python nell'immagine docker alpina minimale. Mancavano i certificati CA root. fix:

apk update && apk add ca-certificates


1

La risposta di Vaulstein mi ha aiutato.

Non ho trovato il file pip.ini da nessuna parte sul mio pc. Così ha fatto quanto segue.

  1. Sono andato alla cartella AppData. È possibile ottenere la cartella appdata aprendo il prompt dei comandi e digitare echo% AppData%

Posizione AppData mediante il prompt dei comandi

O semplicemente digita% AppData% in Windows Explorer.

Posizione dei dati dell'app in Windows Explorer

  1. Crea una cartella chiamata pip all'interno di quella cartella appdata.

  2. Nella cartella pip appena creata, creare un semplice file di testo chiamato pip.ini

  3. Passa le seguenti impostazioni di configurazione in quel file usando un semplice editor a tua scelta.

file pip.ini:

[list]
format=columns

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

Ora dovresti essere bravo ad andare.


1

Ho affrontato un problema simile. La soluzione che ha funzionato per me 1) disinstallare python 2.7 2) eliminare la cartella python27 3) reinstallare l'ultimo python


0

Per me nessuno dei metodi suggeriti ha funzionato - usando cert, HTTP, trusted-host.

Nel mio caso il passaggio a una versione diversa del pacchetto ha funzionato (paho-mqtt 1.3.1 anziché paho-mqtt 1.3.0 in questo caso).

Sembra che il problema fosse specifico per quella versione del pacchetto.


0

Potresti avere questo problema se mancano alcuni certificati nel tuo system.eg su opensuse install ca-certificati-mozilla

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.