problema con pip installando quasi tutte le librerie


101

Ho difficoltà a usare pip per installare quasi tutto. Sono nuovo nella programmazione, quindi ho pensato che forse questo è qualcosa che ho sbagliato e ho scelto easy_install per ottenere la maggior parte di ciò di cui avevo bisogno, che generalmente ha funzionato. Tuttavia, ora sto cercando di scaricare la libreria nltk e nessuno dei due sta portando a termine il lavoro.

Ho provato ad entrare

sudo pip install nltk

ma ha ottenuto la seguente risposta:

/Library/Frameworks/Python.framework/Versions/2.7/bin/pip run on Sat May  4 00:15:38 2013
Downloading/unpacking nltk

  Getting page https://pypi.python.org/simple/nltk/
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link]/simple/nltk/ when looking for download links for nltk

  Getting page [need more reputation to post link]/simple/
  Could not fetch URL https://pypi.python. org/simple/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Cannot fetch index base URL [need more reputation to post link]

  URLs to search for versions for nltk:
  * [need more reputation to post link]
  Getting page [need more reputation to post link]
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Could not find any downloads that satisfy the requirement nltk

No distributions at all found for nltk

Exception information:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 266, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1026, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/index.py", line 171, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for nltk

--easy_install installed fragments of the library and the code ran into trouble very quickly upon trying to run it.

Qualche idea su questo problema? Apprezzerei davvero un feedback su come posso far funzionare pip o qualcosa per aggirare il problema nel frattempo.


2
Per le persone che ricevono questo errore [SSL: TLSV1_ALERT_PROTOCOL_VERSION]per tutti pip installi messaggi, è a causa della recente deprecazione di TLS da parte dei siti Python.org. Vedi questa risposta
Anupam

Risposte:


136

Ho trovato sufficiente specificare l'host pypi come attendibile. Esempio:

pip install --trusted-host pypi.python.org pytest-xdist
pip install --trusted-host pypi.python.org --upgrade pip

Questo ha risolto il seguente errore:

  Could not fetch URL https://pypi.python.org/simple/pytest-cov/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) - skipping
  Could not find a version that satisfies the requirement pytest-cov (from versions: )
No matching distribution found for pytest-cov

Aggiornamento aprile 2018 : a chiunque riceva l'errore TLSV1_ALERT_PROTOCOL_VERSION: non ha nulla a che fare con il problema di host / verifica attendibile dell'OP o questa risposta. Piuttosto l'errore TLSV1 è perché il tuo interprete non supporta TLS v1.2, devi aggiornare il tuo interprete. Vedi ad esempio https://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.html e https : //bugs.python.org/issue17128 .

Aggiornamento febbraio 2019 : per alcuni potrebbe essere sufficiente aggiornare pip. Se l'errore precedente ti impedisce di farlo, usa get-pip.py. Ad esempio su Linux,

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

Maggiori dettagli su https://pip.pypa.io/en/stable/installing/ .


4
Questo ha funzionato per me, anni dopo, su un sistema Windows
Allen Butler

23
Ricevo ancora un Could not fetch URL https://pypi.python.org/simple/pytest-xdist/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
errore-

3
Ho aggiornato la mia risposta per parlare di TLSV1 in quanto è una questione completamente separata.
Oliver

8
@peterpod vedi questa risposta: stackoverflow.com/a/49769015/1526703
Anupam


40

Ho usato la versione pip 9.0.1e ho avuto lo stesso problema, tutte le risposte sopra non hanno risolto il problema e non ho potuto installare python / pip con brew per altri motivi.

L'aggiornamento di pip per 9.0.3risolvere il problema. E poiché non ho potuto aggiornare pip con pip, ho scaricato il sorgente e l'ho installato manualmente.

  1. Scarica la versione corretta di pip da: https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - Installa pip

Oppure puoi installare pip più recenti con:

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

come accennato nel mio commento sulla risposta di @ apatsekin, ciò sta accadendo a causa della recente deprecazione di TLS per pip. Vedi questa risposta per i dettagli.
Anupam

Grazie .. Posso confermare che lo stesso ha funzionato anche per Python 2 (sto lavorando a qualcosa di legacy atm)
cardamomo

Se conda / anaconda è il motivo per cui non puoi usare brew o pip per aggiornare pip, puoi usare conda install pipper installare / aggiornare il pip che stai usando con il tuo ambiente conda. Dovresti farlo nel tuo ambiente di root / base conda, se hai installato conda
piani cottura

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

32

Pypi ha rimosso il supporto per le versioni TLS inferiori alla 1.2

Devi reinstallare Pip, fallo

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

o per Python globale:

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

Questo ha risolto il problema sulla versione Mac OS Sierra 10.12.6. Grazie!
Zhenhua

Funziona per me su High Sierra. Grazie.
rustyshackleford

28

Ho usato la versione pip3 9.0.1e di recente non sono stato in grado di installare alcun pacchetto tramite il comando pip3 install.

Versione per Mac os: EI Captain 10.11.5.

versione python: 3.5

Ho provato il comando:

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

Non ha funzionato per me.

Quindi ho disinstallato il vecchio pip e installato la versione più recente 10.0.0inserendo questo:

python3 -m pip uninstall pip setuptools
curl https://bootstrap.pypa.io/get-pip.py | python3

Ora il mio problema è stato risolto. Se stai usando python2, puoi sostituire python3 con python. Spero che funzioni anche per te.

A proposito, per alcuni rookie come me, devi inserire il codice: sudo -i

per ottenere la radice giusta :) Buona fortuna!


Facendo eco a quanto sopra, stavo per provare a reinstallare in modo pulito Python e pip, ma per me ha funzionato. Grazie!
MikeJannino

non ignorare "sudo -i"
Dung

27

Probabilmente stai vedendo questo bug ; vedi anche qui .

La soluzione più semplice è quella di downgrade pip a uno che non fa uso di SSL: easy_install pip==1.2.1. Questo ti perde il vantaggio di sicurezza dell'utilizzo di SSL. La vera soluzione è utilizzare una distribuzione Python collegata a una libreria SSL più recente.


1
Grazie Dougal, ma neanche pip 1.2.1 funziona. -Vuoi farmi sapere come posso aggiornare la mia distribuzione python a una libreria SSL più recente?
contentclown

in realtà, ho appena fatto in modo che tutto funzioni proprio ora. grazie per il tuo aiuto, Dougal!
contentclown

7
@ user2348946 Cosa hai fatto, in modo che sia utile alle persone in futuro?
Dougal

1
@ DannyStaple Sì, è esattamente quello che ho suggerito. Ovviamente, usare un'installazione non di sistema di Python non è molto difficile; Io personalmente uso Anaconda , che è ottimo per le applicazioni numeriche ma funzionerebbe per qualsiasi cosa.
Dougal

1
@ user13107 Sì; come indicato nei commenti sulla risposta accettata, PyPI ora richiede TLS 1.2. Dovrai aggiornare la tua installazione di Python.
Dougal

18

Un'altra causa di errori SSL può essere un cattivo tempo di sistema: i certificati non verranno convalidati se è troppo lontano dal presente.


Grazie!! Quella era l'unica soluzione che ha funzionato per me. L'orologio del mio server era MOLTO spento.
Adam Spires il


6

Ho risolto un problema simile aggiungendo l' --trusted-host pypi.python.orgopzione


6

Per installare qualsiasi altro pacchetto devo utilizzare l'ultima versione di pip, poiché 9.0.1ha questo problema SSL. Per aggiornare il pip tramite pip stesso, devo prima risolvere questo problema SSL. Per saltare fuori da questo ciclo infinito, trovo che questo sia l'unico modo che funziona per me.

  1. Trova l'ultima versione di pip in questa pagina: https://pypi.org/simple/pip/
  2. Scarica il file .whl file dell'ultima versione.
  3. Usa pip per installare l'ultimo pip. (Usa la tua ultima versione qui)

sudo pip install pip-10.0.1-py2.py3-none-any.whl

Ora il pip è l'ultima versione e può installare qualsiasi cosa.


5

Soluzione : installa qualsiasi pacchetto contrassegnando di seguito gli host attendibili

  • pypi.python.org
  • pypi.org
  • files.pythonhosted.org

Soluzione temporanea

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org {package name}

Soluzione permanente : aggiorna il tuo PIP (problema con la versione 9.0.1) al più recente.

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org pytest-xdist

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

3

macOS Sierra 10.12.6. Non è stato possibile installare nulla tramite pip (python installato tramite homebrew). Tutte le risposte sopra non hanno funzionato.

Alla fine, l'aggiornamento da Python 3.5 a 3.6 ha funzionato.

brew update
brew doctor #(in case you see such suggestion by brew)

quindi segui eventuali suggerimenti aggiuntivi per brew, ad esempio sovrascrivi il collegamento a python.


1
se utilizzi Mac OS 10.12, il problema originale potrebbe essere effettivamente correlato alla recente deprecazione di TLS pip. Vedi questo post per i dettagli. pipha smesso di supportare il protocollo di sicurezza precedente nella 10.12 e nelle versioni precedenti.
Anupam

3

Ho avuto lo stesso problema. Ho appena aggiornato il python da 2.7.0 a 2.7.15 . Risolve il problema.

Puoi scaricarlo qui .


L'ho appena risolto per la decima volta. Nonostante si capisca molto bene il problema su OSX e si sappia cosa e dove si trova l'errore, ogni "soluzione" è diversa dal passato. Questa volta il voto va all'installazione 2.7.15 su OSX. Semplice ed efficace. Inoltre, ci sono note nel rilascio riguardanti il ​​problema SSL / OpenSSH. Saluti e grazie mille!
Marc

3

Come pubblicato sopra da blackjar, le righe sottostanti hanno funzionato per me

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

Devi dare tutti e tre --trusted-host options. Stavo provando solo con il primo dopo aver esaminato le risposte, ma non ha funzionato per me in quel modo.


2

Puoi anche usare conda per installare i pacchetti: vedi http://conda.pydata.org

conda install nltk

Il modo migliore per usare conda è scaricare Miniconda, ma puoi anche provare

pip install conda
conda init
conda install nltk

7
In tutta onestà, se pip installnon funziona, consigliare di installare un altro gestore di pacchetti tramite pip è ... beh, lo sai.
Dave Newton,

Questo in realtà ha funzionato per me. Ho installato anaconda dopo aver installato python. Non avevo idea che anaconda avesse il suo programma di installazione fino a quando non ho letto questo. Quindi, questa è la risposta che ha funzionato per me. Il commento di Travis affronta la questione dell'uovo / gallina perché ha consigliato di installare miniconda.
caso di votazione NewQuestion CHIUDI

2

Per me, l'ultimo pip (1.5.6) funziona bene con il pacchetto nltk insicuro se gli dici solo di non essere così esigente in fatto di sicurezza:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk

Questa è una vecchia risposta. Quale versione di pipsei?
piani cottura

1
Credo che sia l'ultimo. Penso di aver risolto il problema disinstallando tutto (Python 2.7, pip ecc.) E reinstallando tutto più e più volte
DaniPaniz

2

provato

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

e alla fine ha funzionato, non capisco bene perché il dominio pypi.python.org è cambiato.


1

Se ti connetti tramite un proxy, esegui export https_proxy=<your_proxy> (su Unix o Git Bash) e poi riprova l'installazione.

Se stai usando Windows cmd, questo cambia in set https_proxy=<your_proxy>.


1

Ho fatto quanto segue su Windows 7 per risolvere questo problema.

c: \ Programmi \ Python36 \ Scripts> pip install beautifulsoup4 --trusted-host *

Il --trusted-host sembra risolvere il problema SSL e * significa ogni host.

Ovviamente questo non funziona perché ottieni altri errori poiché non esiste una versione che soddisfi il requisito beautifulsoup4, ma non penso che il problema sia correlato alla domanda generale.


1

Basta disinstallare e reinstallare i pacchetti pip che ti alleneranno.

Versione per Mac OS: High Sierra 10.13.6

versione python: 3.7.0

Quindi ho disinstallato il vecchio pip e ho installato la versione più recente10.0.0 inserendo questo:

python3 -m pip uninstall pip setuptools

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

Ora il mio problema è stato risolto. Se stai usando python2, puoi sostituire python3 con python. Spero che funzioni anche per te.


0

Se si tratta solo di nltk, una volta ho affrontato un problema simile. Prova a seguire la guida per l'installazione. Installa NLTK

Se sei sicuro che non funzioni con nessun altro modulo, potresti avere problemi con diverse versioni di Python installate.

Oppure provalo per vedere se dice che pip è già installato .:

sudo apt-get install python-pip python-dev build-essential 

e vedere se funziona.


0

Ho risolto questo problema con i seguenti passaggi (su sles 11sp2)

zypper remove pip
easy_install pip=1.2.1
pip install --upgrade scons

Ecco gli stessi passaggi in Puppet (che dovrebbe funzionare su tutte le distribuzioni)

  package { 'python-pip':
    ensure => absent,
  }
  exec { 'python-pip':
    command  => '/usr/bin/easy_install pip==1.2.1',
    require  => Package['python-pip'],
  }
  package { 'scons': 
    ensure   => latest,
    provider => pip,
    require  => Exec['python-pip'],
  }


0

Ho avuto questo con PyCharm e l'aggiornamento di pip a 10.0.1 ha rotto pip con errore "'main' non trovato nel modulo".

Potrei risolvere questo problema installando pip 9.0.3 come visto in qualche altro thread. Questi sono i passaggi che ho fatto:

  1. È stata scaricata la versione 9.0.3 di pip da https://pypi.org/simple/pip/ (poiché non è stato possibile utilizzare pip per installarlo).
  2. Installa pip 9.0.3 da tar.gz python -m pip install pip-9.0.3.tar.gz

Tutto ha iniziato a funzionare dopo.




0

Ho provato alcune delle risposte più diffuse, ma non sono ancora riuscito a installare alcuna libreria / pacchetto utilizzando pip install.

Il mio errore specifico è stato 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain utilizzo di Miniconda per Windows (programma di installazione Miniconda3-py37_4.8.3-Windows-x86.exe).

Finalmente funziona quando l'ho fatto: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Nello specifico, ho aggiunto questo per farlo funzionare: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

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.