problema de pip al instalar casi cualquier biblioteca

101

Tengo dificultades para usar pip para instalar casi cualquier cosa. Soy nuevo en la codificación, así que pensé que tal vez esto es algo que he estado haciendo mal y he optado por easy_install para obtener la mayor parte de lo que necesitaba, que generalmente ha funcionado. Sin embargo, ahora estoy tratando de descargar la biblioteca nltk, y ninguno de los dos está haciendo el trabajo.

Intenté entrar

sudo pip install nltk

pero obtuve la siguiente respuesta:

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

¿Alguna sugerencia en este asunto? Realmente agradecería algunos comentarios sobre cómo puedo hacer que pip funcione o algo para solucionar el problema mientras tanto.

payaso
fuente
2
Para las personas que reciben este error [SSL: TLSV1_ALERT_PROTOCOL_VERSION]para todos pip installlos mensajes de correo electrónico, se debe a la reciente desaprobación de TLS por parte de los sitios de Python.org. Vea esta respuesta
Anupam

Respuestas:

136

Encontré suficiente para especificar el host pypi como confiable. Ejemplo:

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

Esto resolvió el siguiente error:

  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

Actualización de abril de 2018 : para cualquiera que reciba el error TLSV1_ALERT_PROTOCOL_VERSION: no tiene nada que ver con el problema de verificación / host confiable del OP o esta respuesta. Más bien, el error TLSV1 se debe a que su intérprete no admite TLS v1.2, debe actualizar su intérprete. Consulte, por ejemplo , https://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.html y https : //bugs.python.org/issue17128 .

Actualización de febrero de 2019 : para algunos, puede ser suficiente actualizar pip. Si el error anterior le impide hacer esto, use get-pip.py. Por ejemplo, en Linux,

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

Más detalles en https://pip.pypa.io/en/stable/installing/ .

Oliver
fuente
4
Esto funcionó para mí, años después, en un sistema de Windows
Allen Butler
23
Sigo recibiendo un errorCould 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
Sankalp
3
He actualizado mi respuesta para hablar sobre TLSV1, ya que es un problema totalmente independiente.
Oliver
8
@peterpod vea esta respuesta: stackoverflow.com/a/49769015/1526703
Anupam
40

Usé la versión pip 9.0.1y tuve el mismo problema, todas las respuestas anteriores no resolvieron el problema y no pude instalar python / pip con brew por otras razones.

Actualizar pip para 9.0.3resolver el problema. Y como no pude actualizar pip con pip, descargué la fuente y la instalé manualmente.

  1. Descargue la versión correcta de pip de: https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - Instalar pip

O puede instalar un pip más nuevo con:

curl https://bootstrap.pypa.io/get-pip.py | python
ROM
fuente
como se mencionó en mi comentario sobre la respuesta de @ apatsekin, esto está sucediendo debido a la reciente desaprobación de TLS para pip. Consulte esta respuesta para obtener más detalles.
Anupam
Gracias ... Puedo confirmar que lo mismo también funcionó para Python 2 (estoy trabajando en un cajero automático heredado)
cardamomo
Si conda / anaconda es la razón por la que no puede usar brew o pip para actualizar pip, entonces puede usar conda install pippara instalar / actualizar el pip que está usando con su entorno conda. Usted debe hacer esto en su entorno Conda raíz / base, si tiene instalado Conda
Placas
1
Solo instalando pipcurl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil
32

Pypi eliminó la compatibilidad con las versiones TLS inferiores a 1.2

Necesitas volver a instalar Pip, haz

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

o para Python global:

curl https://bootstrap.pypa.io/get-pip.py | sudo python
Parth Choudhary
fuente
Esto resolvió el problema en Mac OS versión Sierra 10.12.6. ¡Gracias!
Zhenhua
Funciona para mí en High Sierra. Gracias.
rustyshackleford
28

Usé la versión pip3 9.0.1y no pude instalar ningún paquete recientemente a través del comando pip3 install.

Versión para Mac os: EI Captain 10.11.5.

versión de python: 3.5

Probé el comando:

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

No funcionó para mí.

Así que desinstalé el pip anterior e instalé la versión más nueva 10.0.0ingresando esto:

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

Ahora mi problema estaba resuelto. Si está utilizando python2, puede sustituir python3 por python. Espero que también te funcione.

Por cierto, para algunos novatos como yo, hay que introducir el código: sudo -i

para obtener la raíz correcta :) ¡Buena suerte!

Aquisgrán
fuente
Haciendo eco de lo anterior, estaba a punto de intentar simplemente reinstalar python y pip, pero esto funcionó para mí. ¡Gracias!
MikeJannino
no ignore "sudo -i"
Dung
27

Probablemente estés viendo este error ; ver también aquí .

La solución más fácil es rebajar pip a uno que no utiliza SSL: easy_install pip==1.2.1. Esto le hace perder el beneficio de seguridad de usar SSL. La verdadera solución es utilizar una distribución de Python vinculada a una biblioteca SSL más reciente.

Dougal
fuente
1
Gracias Dougal, pero pip 1.2.1 tampoco funciona. -¿Le importaría dejarme saber cómo puedo actualizar mi distribución de Python a una biblioteca ssl más reciente?
contentclown
en realidad, acabo de hacer que todo funcione ahora. gracias por tu ayuda, Dougal!
contentclown
7
@ user2348946 ¿Qué hiciste para que esto sea útil para las personas en el futuro?
Dougal
1
@DannyStaple Sí, eso es exactamente lo que sugerí. Por supuesto, usar una instalación de Python que no sea del sistema no es muy difícil; Yo personalmente uso Anaconda , que es ideal para aplicaciones numéricas pero funcionaría para cualquier cosa.
Dougal
1
@ user13107 Sí; como se indica en los comentarios sobre la respuesta aceptada, PyPI ahora requiere TLS 1.2. Deberá actualizar su instalación de Python.
Dougal
18

Otra causa de errores de SSL puede ser una mala hora del sistema: los certificados no se validarán si están demasiado lejos del presente.

pidge
fuente
¡¡Gracias!! Esa fue la única solución que funcionó para mí. El reloj de mi servidor estaba MUY apagado.
Adam Spires
6

Resolví un problema similar agregando la --trusted-host pypi.python.orgopción

Ruben
fuente
6

Para instalar cualquier otro paquete tengo que usar la última versión de pip, ya que 9.0.1tiene este problema de SSL. Para actualizar el pip por pip, primero tengo que resolver este problema de SSL. Para saltar de este bucle sin fin, encuentro esta única forma que funciona para mí.

  1. Encuentre la última versión de pip en esta página: https://pypi.org/simple/pip/
  2. Descargue el .whlarchivo de la última versión.
  3. Utilice pip para instalar el último pip. (Utilice su propia versión más reciente aquí)

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

Ahora el pip es la última versión y puede instalar cualquier cosa.

Jianzhe Gu
fuente
5

Solución : instale cualquier paquete marcando a continuación los hosts de confianza

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

Solución temporal

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

Solución permanente : actualice su PIP (problema con la versión 9.0.1) a la última versión.

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
RollerCosta
fuente
3

macOS Sierra 10.12.6. No pude instalar nada a través de pip (python instalado a través de homebrew). Todas las respuestas anteriores no funcionaron.

Finalmente, la actualización de Python 3.5 a 3.6 funcionó.

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

luego siga cualquier sugerencia adicional de brew, es decir, sobrescriba el enlace a python.

apatsekin
fuente
1
Si tiene Mac OS 10.12, su problema original podría estar relacionado con la reciente desaprobación de TLS pip. Consulte esta publicación para obtener más detalles. pipha dejado de admitir el protocolo de seguridad anterior en 10.12 y versiones anteriores.
Anupam
3

Yo tuve el mismo problema. Acabo de actualizar Python de 2.7.0 a 2.7.15 . Resuelve el problema.

Puede descargar aquí .

Günay Gültekin
fuente
Acabo de arreglar esto por décima vez. A pesar de comprender muy bien el problema en OSX y saber cuál es y dónde está la falla, cada "solución" es diferente del pasado. Esta vez la votación va a la instalación 2.7.15 en OSX. Simple y eficaz. Además, hay notas en el comunicado sobre el problema de SSL / OpenSSH. Saludos y muchas gracias!
Marc
3

Como lo publicó Blackjar, las siguientes líneas funcionaron para mí

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

Tienes que dar los tres --trusted-host options. Intenté solo con el primero después de ver las respuestas, pero no me funcionó así.

abhi
fuente
2

También puede utilizar conda para instalar paquetes: consulte http://conda.pydata.org

conda install nltk

La mejor forma de usar conda es descargar Miniconda, pero también puedes probar

pip install conda
conda init
conda install nltk
Travis Oliphant
fuente
7
Para ser justos, si pip installno funciona, recomendar la instalación de otro administrador de paquetes a través de pip es ... bueno, ya sabes.
Dave Newton
Esto realmente funcionó para mí. Instalé anaconda después de instalar Python. No tenía idea de que anaconda tenía su propio instalador hasta que leí esto. Entonces, esta es la respuesta que funcionó para mí. El comentario de Travis aborda el tema del huevo y la gallina porque recomendó instalar miniconda.
si vota NewQuestionCLOSE
2

Para mí, el último pip (1.5.6) funciona bien con el paquete inseguro nltk si le dices que no sea tan exigente con la seguridad:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk
encimeras
fuente
Esta es una respuesta antigua. ¿En qué versión pipestás?
placas
1
Supongo que el último. Creo que resolví el problema desinstalando todo (Python 2.7, pip, etc.) y reinstalando todo una y otra vez
DaniPaniz
2

intentó

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

y finalmente funcionó, no entiendo del todo por qué se cambia el dominio pypi.python.org.

blackjar
fuente
1

Si se está conectando a través de un proxy, ejecútelo export https_proxy=<your_proxy>(en Unix o Git Bash) y luego vuelva a intentar la instalación.

Si está utilizando cmd de Windows, esto cambia a set https_proxy=<your_proxy>.

lostsoul29
fuente
1

Hice lo siguiente en Windows 7 para resolver este problema.

c: \ Archivos de programa \ Python36 \ Scripts> pip install beautifulsoup4 --trusted-host *

El --trusted-host parece solucionar el problema de SSL y * significa cada host.

Por supuesto, esto no funciona porque obtiene otros errores, ya que no hay una versión que cumpla con el requisito beautifulsoup4, pero no creo que ese problema esté relacionado con la pregunta general.

usuario9175040
fuente
1

Simplemente desinstale y vuelva a instalar los paquetes de pip que funcionará para ustedes.

Versión de Mac os: High Sierra 10.13.6

versión de Python: 3.7

Así que desinstalé el pip anterior e instalé la versión más nueva 10.0.0 ingresando esto:

python3 -m pip uninstall pip setuptools

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

Ahora mi problema estaba resuelto. Si está utilizando python2, puede sustituir python3 por python. Espero que también te funcione.

Yash Patel
fuente
0

Si solo se trata de nltk, una vez enfrenté un problema similar. Intente seguir la guía para la instalación. Instalar NLTK

Si está seguro de que no funciona con ningún otro módulo, es posible que tenga problemas con las diferentes versiones de Python instaladas.

O Pruébelo para ver si dice que pip ya está instalado:

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

y ver si funciona.

akshayb
fuente
0

Resolví este problema con los siguientes pasos (en sles 11sp2)

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

Aquí están los mismos pasos en títeres (que deberían funcionar en todas las distribuciones)

  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'],
  }
chorro
fuente
0

Tuve esto con PyCharm y la actualización de pip a 10.0.1 rompió pip con el error "'principal' no encontrado en el módulo".

Podría resolver este problema instalando pip 9.0.3 como se ve en algún otro hilo. Estos son los pasos que hice:

  1. Descargó la versión 9.0.3 de pip de https://pypi.org/simple/pip/ (ya que pip no se pudo usar para instalarlo).
  2. Instale pip 9.0.3 desde tar.gz python -m pip install pip-9.0.3.tar.gz

Todo empezó a funcionar después de eso.

Yuriy M
fuente
0

Probé algunas de las respuestas populares, pero aún no pude instalar ninguna biblioteca / paquete usando pip install.

Mi error específico fue 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chainusar Miniconda para Windows (instalador Miniconda3-py37_4.8.3-Windows-x86.exe).

Finalmente funciona cuando hice esto: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Específicamente, agregué esto para que funcione: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

datchung
fuente