la instalación de pip falla con "error de conexión: [SSL: CERTIFICATE_VERIFY_FAILED] verificación de certificado falló (_ssl.c: 598)"

397

Soy muy nuevo en Python y estoy intentando hacerlo > pip install linkcheckeren Windows 7. Algunas notas:

  • la instalación de pip falla, sin importar el paquete. Por ejemplo, > pip install scrapytambién da como resultado el error SSL.
  • La instalación de Vanilla de Python 3.4.1 incluyó pip 1.5.6. Lo primero que intenté hacer fue instalar linkchecker. Python 2.7 ya estaba instalado, vino con ArcGIS. pythony pipno estaban disponibles desde la línea de comando hasta que instalé 3.4.1.
  • > pip search linkcheckertrabajos. Quizás eso se deba a que la búsqueda de pip no verifica el certificado SSL del sitio.
  • Estoy en la red de una empresa pero no pasamos por un proxy para llegar a Internet.
  • Cada computadora de la empresa (incluida la mía) tiene una Autoridad de certificación raíz de confianza que se utiliza por varias razones, incluida la habilitación de la supervisión del tráfico TLS a https://google.com . No estoy seguro si eso tiene algo que ver con eso.

Aquí están los contenidos de mi pip.log después de ejecutar 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
Jeremy Cook
fuente
1
¡Todo lo contrario! Python 3.4.1 y versiones anteriores no realizan validación de certificados de forma predeterminada. Si estuvieras usando Python 3.4.2, habría pensado que ese era el problema. (Vea el problema 21013 y este hilo en la lista de correo . Tenga en cuenta que ese es el comienzo de un hilo bastante largo). ¡Lo siento, no pude ayudar!
Cody Piersall
3
Compruebe si ha abierto el violinista y ciérrelo. Fiddler intenta romper SSL y esto rompe pip, cuando cierro fiddler pip funciona para mí. Cuando cierro mi violinista todo va bien
José Barbosa

Respuestas:

641

-----> pip install gensim config --global http.sslVerify false

Simplemente instale cualquier paquete con la declaración "config --global http.sslVerify false"

Puede ignorar los errores de SSL configurando pypi.orgy files.pythonhosted.orgcomo hosts de confianza.

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

Nota : En algún momento durante abril de 2018, el índice del paquete Python se migró de pypi.python.orga pypi.org. Esto significa que los comandos de "host de confianza" que usan el dominio anterior ya no funcionan.

Arreglo permanente

Desde el lanzamiento de pip 10.0, debería poder solucionarlo de forma permanente simplemente actualizándose pip:

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

O simplemente reinstalando para obtener la última versión:

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

(... y luego se ejecuta get-pip.pycon el intérprete de Python relevante).

pip install <otherpackage>debería funcionar después de esto. De lo contrario, deberá hacer más, como se explica a continuación.


Es posible que desee agregar los hosts de confianza y el proxy a su archivo de configuración .

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

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

Soluciones alternativas (menos seguras)

La mayoría de las respuestas podrían plantear un problema de seguridad.

Dos de las soluciones alternativas que ayudan a instalar la mayoría de los paquetes de Python con facilidad serían:

  • Usando easy_install : si eres realmente vago y no quieres perder mucho tiempo, úsaloeasy_install <package_name> . Tenga en cuenta que algunos paquetes no se encontrarán o darán pequeños errores.
  • Uso de Wheel : descargue el paquete Wheel of the python y use el comando pip pip install wheel_package_name.whlpara instalar el paquete.
Vaulstein
fuente
77
Tu actualización me ayudó. En mi caso, el firewall corporativo se inserta como el host de confianza para las conexiones SSL. Supuse que la configuración del proxy era incorrecta, pero agregar detalles mostró que el problema era SSL. El cambio de index-url solucionó el problema.
peater
11
Impresionante, gracias! El host de confianza parece ser suficiente, es decir. pip install --trusted-host pypi.python.org pypi_package. El uso --verbosemuestra que sin --trusted-host, la conexión HTTPS falla, mientras que se intenta la misma conexión HTTPS (no HTTP) con --trusted-hostpero tiene éxito.
Oliver
12
¿No es un riesgo para la seguridad usar la versión HTTP (e incluso confiar en ella)?
Paŭlo Ebermann
3
puede hacerlo tan breve como para ignorar el parámetro --index-url, intente que este comando también debería estar bien:pip install --trusted-host pypi.python.org pythonPackage
Alter Hu
8
no funciona para mi Ejecutar mac os high sierra en un macbookpro 15 "Python 2.7 pip 9.0.1 Probé ambos: sudo -H pip install --trusted-host pypi.python.org numpy y sudo pip install --trusted-host pypi.python.org numpy siempre me da el mismo error: "Hubo un problema al confirmar el certificado SSL: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] versión del protocolo de alerta tlsv1 (_ssl.c: 661) - omitiendo No se pudo encontrar una versión que satisfaga el requisito"
DaniPaniz
123

Puede especificar un certificado con este parámetro:

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

Ver: Documentos »Guía de referencia» pip

Si la especificación del certificado raíz de su empresa no funciona, tal vez cURL sí: http://curl.haxx.se/ca/cacert.pem

Debe usar un archivo PEM y no un archivo CRT. Si tiene un archivo CRT, necesitará convertir el archivo a PEM. Hay informes en los comentarios que ahora funcionan con un archivo CRT pero no lo he verificado.

Verifique también: Verificación del certificado SSL .

Steve Tauber
fuente
1
El Curl one ES seguro. Sugeriría usar eso.
Steve Tauber
1
@JeremyCook podría ser el momento en su servidor, si es en el pasado podría ser el proceso de verificación
Giovanni Bitliner
1
El formato CRT no es compatible, solo el formato PEM sí. Deberá convertir el CRT al formato PEM usando openssl. También debe verificar que el paquete que ha descargado contiene la CA raíz correcta. Consulte mi respuesta anterior para obtener más detalles: stackoverflow.com/a/28724886/41957 .
chnrxn
1
@JeremyCook, los PEM / certs no vinieron directamente del tercero desde el que los descargó. Recopilaron los certificados de las fuentes originales. No es posible que un tercero genere un certificado de otra persona a menos que tenga la clave correcta (que solo la otra persona tendrá).
chnrxn
44
@endolith: mirando pip.pypa.io/en/stable/user_guide/#configuration parece que puede usar variables de entorno o un pip.confarchivo para hacer referencia a ellas permanentemente sin especificar el comando
Cinderhaze
63

La respuesta de kenorb es muy útil (¡y genial!).
Entre sus soluciones, quizás esta sea la más simple: --trusted-host

Por ejemplo, en este caso puedes hacer

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

El archivo pem (o cualquier otra cosa) es innecesario.

plhn
fuente
Esto también funciona para otros comandos comopip list --trusted-host pypi.python.org --outdated
Igor
61

Para mí, el problema se solucionó creando una carpeta pip, con un archivo: pip.ini por C:\Users\<username>\AppData\Roaming\ ejemplo, en :

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

En su interior escribí:

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

Reinicié Python, y luego pip confió permanentemente en estos sitios, y los usé para descargar paquetes.

Si no puede encontrar la carpeta AppData en Windows, escriba %appdata%en el explorador de archivos y debería aparecer.

usuario2673238
fuente
Curiosamente, esto no está ayudando en mi máquina Win10: /
mcandre
1
En el trabajo, entorno Windows 10, utilizando el emulador de consola Cmder. --trusted-host usado para resolver el problema '' SSLError (SSLCertVerificationError (1, '[SSL: CERTIFICATE_VERIFY_FAILED] verificar error: problema de certificado autofirmado en la cadena de certificados ". Hoy dejó de funcionar. Coloqué una copia de mi carpeta de pip ( tomado de ../AppData/Local/) en ../AppData/Roaming/ y todo está bien con mi mundo local de Python nuevamente. ¡Muchas gracias!
IdusOrtus
1
¡Excelente! Muchas gracias. --trusted-host no funciona para mí ahora, pero su solución ayuda.
Alexander Prokofyev
1
¿Por qué no se descargó esto al instalar Python>
98Ed
¡Increíble! Estaba buscando errores relacionados con GIT, el proxy de la compañía, SSL y solo estaba relacionado con pip. Gracias y espero que este comentario traiga aquí a personas confundidas como yo.
negas
41

Las respuestas son bastante similares y un poco confusas. En mi caso, los certificados en la red de mi empresa eran el problema. Pude solucionar el problema usando:

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

Como se ve aquí . El argumento -vvv se puede omitir si no se requiere una salida detallada

Koji D'infinte
fuente
10
Solo uno para solucionar mi problema, gracias.
Gringo Suave
¡Impresionante, el único que también funcionó para mí!
ethikz
Funciona porque hoy estoy detrás de un proxy que elimina SSL normal. Normalmente no necesito especificar hosts de confianza cuando los adultos ejecutan la red.
MrChrister
Esto también funciona para mí. arriba no funcionó
Srinath Ganesh
32

Arreglo permanente

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

Por ejemplo:

pip install <package name> --trusted-host pypi.org --trusted-host files.pythonhosted.org
Devesh Sharma
fuente
24

Para resolver este problema de una vez por todas, puede verificar que tiene un pip.confarchivo.

Aquí es donde pip.confdebe estar, de acuerdo con la documentación :

En Unix, el archivo de configuración predeterminado es: $HOME/.config/pip/pip.confque respeta la variable de entorno XDG_CONFIG_HOME.

En macOS, el archivo de configuración es $HOME/Library/Application Support/pip/pip.confsi $HOME/Library/Application Support/pipexiste otro directorio$HOME/.config/pip/pip.conf

En Windows el archivo de configuración es %APPDATA%\pip\pip.ini.

Dentro de un virtualenv:

En Unix y macOS, el archivo es $VIRTUAL_ENV/pip.conf

En Windows el archivo es: %VIRTUAL_ENV%\pip.ini

Tu pip.confdebería verse así:

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

pip install linkcheckerinstalado linkcheckersin quejas después de crear el pip.confarchivo.

Alex-Antoine Fortin
fuente
1
$ HOME / Library / Application Support / pip no existe en mi máquina, ¿hay una ubicación alternativa?
42shadow42
Parece que la pipguía del usuario se ha actualizado desde que publiqué esta respuesta. Actualicé mi respuesta para macOS. ¿Ayuda?
Alex-Antoine Fortin
No afecta el error SSL en mi máquina Win10: /
mcandre
No soluciona el problema en MacOSX.
MoDJ 01 de
Estoy en macOS. Si instaló python3 usando brew, asegúrese de estar usando pip3y cree el pip.confcomo $HOME/.config/pip/pip.conf. Trabajé para mi.
Anu
23

La forma más sencilla que he encontrado es descargar y utilizar el "DigiCert High Assurance EV Root CA" de DigiCert en https://www.digicert.com/digicert-root-certificates.htm#roots

Puede visitar https://pypi.python.org/ para verificar el emisor del certificado haciendo clic en el icono del candado en la barra de direcciones, o aumentar su credibilidad 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

El último valor CN en la cadena de certificados es el nombre de la CA que necesita descargar.

Para un esfuerzo único, haga lo siguiente:

  1. Descargue el CRT de DigiCert
  2. Convierta el CRT al formato PEM
  3. Exporte la variable de entorno PIP_CERT a la ruta del archivo PEM

(la última línea supone que está utilizando el shell bash) antes de ejecutar 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

Para que esto sea reutilizable, coloque DigiCertHighAssuranceEVRootCA.crt en algún lugar común y exporte PIP_CERT en consecuencia en su ~ / .bashrc.

chnrxn
fuente
44
Usó su respuesta para exportar la CA raíz de nuestra empresa a la variable PIP_CERT y, finalmente, después de probar todo lo demás, incluido 'pip --cert cert.pem', su manera funcionó ... solo pip install package. GRANDE +1: sí, tenemos un cortafuegos / proxy / utm.
Marlon
Esto todavía falló para mí en Mac Mojave. Seguí exactamente los 3 pasos y aún aparece "Error: pip está configurado con ubicaciones que requieren TLS / SSL, sin embargo, el módulo ssl en Python no está disponible". Probé todas las opciones --trusted-host y --cert y pip no funcionarán. Intenté actualizar pip y obtuve el error SSL. Instalé pip desde cero con curl y aún recibo el error cuando ejecuto pip. Tiempo para deshacerse de pip y apegarse a conda :(
user1255933
21

Tiene las siguientes posibilidades para resolver problemas con CERTIFICATE_VERIFY_FAILED:

  • Utilice HTTP en lugar de HTTPS (p. Ej. --index-url=http://pypi.python.org/simple/ ).
  • Use --cert <trusted.pem>oCA_BUNDLE variable para especificar un paquete CA alternativo.

    Por ejemplo, puede ir a la URL que falla desde el navegador web e importar el certificado raíz en su sistema.

  • correr python -c "import ssl; print(ssl.get_default_verify_paths())" para verificar el actual (validar si existe).

  • OpenSSL tiene un par de entornos ( SSL_CERT_DIR, SSL_CERT_FILE) que se pueden usar para especificar diferentes bases de datos de certificados PEP-476 .
  • Use --trusted-host <hostname>para marcar el host como confiable.
  • En uso de Python verify=Falsepara requests.get(ver: Verificación del certificado SSL ).
  • Úselo --proxy <proxy>para evitar verificaciones de certificados.

Obtenga más información en: contenedor TLS / SSL para objetos de socket: verificación de certificados .

kenorb
fuente
Desde su primer punto, ¿cómo especifico HTTP con el comando pip?
rayzinnz
1
@rayzinnz He añadido el ejemplo.
kenorb
16

¡Ajuste la hora y la fecha correctas!

Para mí, resultó que mi fecha y hora estaban mal configuradas en Raspberry Pi. El resultado fue que todas las conexiones SSL y HTTPS fallaron, usando https://files.pythonhosted.org/ servidor .

Actualízalo así:

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

O directamente con, por ejemplo, el tiempo de Google:

Ref .: 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
Thomas Devoogdt
fuente
Me ha estado volviendo loco durante horas, gracias por eso. El tiempo de PI estuvo apagado por 10 días para mí causando (parecería) todo tipo de errores durante la instalación de pip.
SteveJ
13

Recientemente me encontré con este problema debido al filtro de contenido web de mi empresa que utiliza su propia Autoridad de certificación para que pueda filtrar el tráfico SSL. PIP no parece estar usando los certificados de CA del sistema en mi caso, produciendo el error que usted menciona. La degradación de PIP a la versión 1.2.1 presentó su propio conjunto de problemas más adelante, así que volví a la versión original que venía con Python 3.4.

Mi solución es bastante simple: uso easy_install. O no verifica los certificados (como la versión anterior de PIP), o sabe usar los certificados del sistema porque me funciona todo el tiempo y todavía puedo usar PIP para desinstalar paquetes instalados con easy_install.

Si eso no funciona y puede obtener acceso a una red o computadora que no tiene el problema, siempre puede configurar su propio servidor PyPI personal: ¿cómo crear un índice de repositorio pypi local sin espejo?

Casi lo hice hasta que intenté usarlo easy_installcomo último esfuerzo.

Pueblos Ross
fuente
Mismo problema aquí. Otra solución es exportar el certificado raíz de la compañía como un archivo y decirle pipque lo use --cert MyCompanyRootCA.crt.
glibdud
10

Puede intentar evitar el error SSL utilizando http en lugar de https. Por supuesto, esto no es óptimo en términos de seguridad , pero si tiene prisa, debería ser el truco:

pip install --index-url=http://pypi.python.org/simple/ linkchecker
Augusto Destrero
fuente
1
Esperaba que tu sugerencia funcionara. Loco, obtuve exactamente los mismos errores, incluido el primeroCould not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Jeremy Cook, el
3
Ok, entonces otra solución es descargar el paquete tar.gz disponible aquí pypi.python.org/pypi/LinkChecker/9.3 y la instalación con: pip install LinkChecker-9.3.tar.gz
Augusto Destrero
3
Pero si el paquete que desea instalar tiene dependencias, debe descargar e instalar también todas las dependencias, si son muchas, esto podría convertirse en una pesadilla.
Augusto Destrero
1
Para mí, tuve que descargar el WHL (para mi caso pyserial) e instalarlo. Esto recogió las dependencias que no fueron recopiladas por tar.gz ... Entonces, quizás whl sea otra opción en la línea de @baxeico python -m pip install pyserial-3.4-py2.py3-none-any.whl Para mí nada de esto funcionó: 1. --cert cacert.pem 2. exportando certificado de empresa, convirtiendo a PEM 3. easy_install en cygwin 4. --trusted-host
charo
1
El ahora anhelo funciona a partir de 2017: el acceso HTTP se ha cortado por completo. mail.python.org/pipermail/distutils-sig/2017-October/…
gbtimmon
8

Las respuestas a usar

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

trabajo. Pero tendrá que verificar si hay redireccionamientos o cachés pipestá llegando. En Windows 7 con pip 9.0.1, tuve que ejecutar

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

Puede encontrarlos con la bandera detallada.

pmbotter
fuente
7

Instalé pip 1.2.1 con easy_install y actualicé a la última versión de pip (6.0.7 en ese momento) que puede instalar paquetes en mi caso.

easy_install pip==1.2.1
pip install --upgrade pip
theofanis
fuente
7

Tienes 4 opciones:

Usando un certificado como parámetro

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

Usar un certificado en un pip.conf

Crea este archivo:

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

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

y agregue estas líneas:

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

Ignorando el certificado y usando HTTP

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

Ignorando el certificado y usando HTTP en un pip.conf

Crea este archivo:

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

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

y agregue estas líneas:

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

Fuente

Thiago Falcao
fuente
6

Ante todo,

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

no funciono para mi Seguí recibiendo el error CERTIFICATE_VERIFY_FAILED. Sin embargo, noté en los mensajes de error que hacían referencia al sitio 'pypi.org'. Entonces, usé esto como el nombre de host de confianza en lugar de pypi.python.org. Eso casi me llevó allí; la carga seguía fallando con CERTIFICATE_VERIFY_FAILED, pero en un momento posterior. Al encontrar la referencia al sitio web que estaba fallando, lo incluí como un host de confianza. Lo que finalmente funcionó para mí fue:

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package name>
Pat B.
fuente
5

No estoy seguro de si esto está relacionado, pero tuve un problema similar que se solucionó copiando estos archivos de Anaconda3 / Library / bin a Anaconda3 / DLL:

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll

Frio frio
fuente
Con Anaconda 2019.03, he copiado los siguientes archivos de <carpeta Anaconda3> / Library / bin a <Anaconda3> / DLLs libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssh2.dll libssl-1_1-x64.dll libssl- 1_1-x64.pdb Luego añadir un error de ConnectTimeout, de modo actualizado .condarc configuración de proxy
MordicusEtCubitus
Trabajos. Hombre eres GENIO! He estado recorriendo los foros durante 1,5 horas, solo para encontrar esta solución subestimada y simple.
ivan866
4

Tuve el mismo problema al intentar pip install ftputilcon ActivePython 2.7.8, ActivePython 3.4.1 y Python 3.4.2 "stock" en Windows 7 Enterprise de 64 bits. Todos los intentos fallaron con los mismos errores que OP.

Se solucionó el problema de Python 3.4.2 bajando a pip 1.2.1: easy_install pip==1.2.1(consulte https://stackoverflow.com/a/16370731/234235 ). La misma corrección también funcionó para ActivePython 2.7.8.

El error, reportado en marzo de 2013, aún está abierto: https://github.com/pypa/pip/issues/829 .

psteiner
fuente
Esto funcionó para mí también. Si bien puede parecer una mala idea, en primer lugar, degradar a una versión anterior de pip, estaba lidiando con viejos paquetes de django, por lo que la versión anterior de pip realmente coincidía con los otros paquetes.
mknaf
El problema 829 ya está cerrado.
Ortomala Lokni
3

Nada en esta página funcionó para mí hasta que usé la opción --verbose para ver que quería acceder a files.pythonhosted.org en lugar de pypi.python.org:

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

Así que verifique la URL en la que realmente está fallando a través de la opción --verbose.

Dan Austin
fuente
2

Resolví este problema eliminando mi pip e instalando la versión anterior de pip: https://pypi.python.org/pypi/pip/1.2.1

usuario3080641
fuente
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia. - De la opinión
apomene
@apomene, ¿cómo se supone que OP include the essential parts of the answer hereya que es un enlace a un archivo binario ...?
Thomas Ayoub
@ThomasAyoub, creo que ya sabe, que el mensaje anterior se llena automáticamente desde SO, al marcar una respuesta como única respuesta de enlace
apomene
@apomene que no responde mi pregunta, ¿todavía no veo qué OP podría / debería agregar?
Thomas Ayoub
1
@ThomasAyoub, para dar más detalles, mi comentario (SO) indica que la pregunta es corta y solo tiene enlace, lo que significa que podría ser un comentario. Mi intención no era declarar explícitamente que OP debería agregar detalles para volver a calificar el enlace, sino detalles sobre por qué esto responde a la pregunta.
Apomene
2

Puedes probar esto para ignorar "https":

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [your package..]
Smaillns
fuente
1
si incluso tiene otros problemas con la versión pip, puede probar esto pip install --trusted-host pypi.python.org --upgrade pip –
Smaillns, el
2

Una solución ( para Windows ) es crear un archivo llamado pip.inien la %AppData%\pip\carpeta (cree la carpeta si no existe) e inserte los siguientes detalles:

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

... y luego podemos ejecutar la instrucción de instalación:

pip3 install PyQt5

Otra opción es instalar el paquete usando argumentos para el proxy y el certificado ...

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

Para convertir los *.cerarchivos de certificado al *.pemformato requerido , ejecute las siguientes instrucciones:

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

¡Espero que esto ayude a alguien!

Marco
fuente
1
Para otros sistemas operativos, eche un vistazo a la respuesta de Alex-Antoine Fortin
Dinei
No necesitaba el proxy, solo el certificado. Yo corrí; pip3.6 config set global.cert '/<path>/server.crt'
avatarofhope2
2

En mi caso, se debió a que el certificado SSL fue firmado por la CA interna de mi empresa. El uso de soluciones alternativas pip --certno ayudó, pero el siguiente paquete sí:

pip install pip_system_certs

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

Este paquete parchea pip y solicita en tiempo de ejecución el uso de certificados del almacén del sistema predeterminado (en lugar de los certificados incluidos ca).

Esto permitirá que pip verifique las conexiones tls / ssl a los servidores en los que la instalación de su sistema confía en cert.

cortesanos
fuente
1
parece necesario instalar pip_sysem_certs para anular el error [SSL: CERTIFICATE_VERIFY_FAILED], el problema es que al intentar instalarlo se obtuvo el error [SSL: CERTIFICATE_VERIFY_FAILED] ...
athos
Esta puede haber sido una solución en algún momento, pero pip_system_certsrompió por completo mi entorno de Python y, por esa razón, esta no es una buena respuesta. No instale pip_system_certs. Consulte stackoverflow.com/questions/27835619/… para obtener más información.
h0r53
1

para mí esto se debe a que anteriormente estoy ejecutando un script que establece el proxy (en fiddler), reabrir la consola o reiniciar soluciona el problema.

Uingtea
fuente
Fiddler se puede omitir configurando "Descifrar tráfico HTTPS" a "... solo desde navegadores" en Herramientas | Opciones. Esto solucionó el problema para mí.
tephyr
1

Recientemente me enfrenté al mismo problema en Python 3.6 con Visual Studio 2015. Después de pasar 2 días, obtuve la solución y está funcionando bien para mí.

Obtuve el siguiente error al intentar instalar numpy usando pip o desde Visual Studio Recopilar numpy No se pudo obtener la URL https://pypi.python.org/simple/numpy/ : Hubo un problema al confirmar el certificado SSL: [SSL: CERTIFICATE_VERIFY_FAILED] falló la verificación del certificado (_ssl.c: 748) - omitiendo No se pudo encontrar una versión que satisfaga el requisito numpy (de versiones:) No se encontró una distribución coincidente para numpy

Resolución:

Para el sistema operativo Windows

  1. abrir -> "% appdata%" Crear carpeta "pip" si no existe.
  2. En la carpeta pip, cree el archivo "pip.ini".
  3. Edite el archivo y escriba
    [global]
    Trusted-host = pypi.python.org Guarde y cierre el archivo. Ahora instale usando pip / visual studio, funciona bien.
Ankit Raval
fuente
1

En mi caso, estaba ejecutando Python en la imagen mínima de acoplador alpino. Faltaban los certificados raíz de CA. Reparar:

apk update && apk add ca-certificates

Martin Melka
fuente
1

La respuesta de Vaulstein me ayudó.

No encontré el archivo pip.ini en ninguna parte de mi PC. Lo mismo hizo lo siguiente.

  1. Fui a la carpeta AppData. Puede obtener la carpeta appdata abriendo el símbolo del sistema y escribiendo echo% AppData%

Ubicación de AppData usando el símbolo del sistema

O simplemente escriba% AppData% en Windows Explorer.

Ubicación de AppData en Windows Explorer

  1. Cree una carpeta llamada pip dentro de esa carpeta de datos de aplicación.

  2. En esa carpeta pip que acaba de crear, cree un archivo de texto simple llamado pip.ini

  3. Pase los siguientes ajustes de configuración en ese archivo usando un editor simple de su elección.

Archivo pip.ini:

[list]
format=columns

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

Ahora deberías estar listo para irte.

VivekDev
fuente
1

Me enfrenté a un problema similar. La solución que funcionó para mí 1) desinstalar python 2.7 2) eliminar la carpeta python27 3) reinstalar la última python

Satyam Raikar
fuente
0

Para mí, ninguno de los métodos sugeridos funcionó: usar cert, HTTP, host de confianza.

En mi caso, el cambio a una versión diferente del paquete funcionó (paho-mqtt 1.3.1 en lugar de paho-mqtt 1.3.0 en este caso).

Parece que el problema era específico de esa versión del paquete.

MiN
fuente
0

Puede tener este problema si faltan algunos certificados en su sistema, por ejemplo, en opensuse install ca-certificate-mozilla

sancelot
fuente