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

510

Soy muy nuevo en Python y lo intento > pip install linkcheckeren Windows 7. Algunas notas:

  • pip install falla sin importar el paquete. Por ejemplo, > pip install scrapytambién da como resultado el error SSL.
  • La instalación básica de Python 3.4.1 incluye pip 1.5.6. Lo primero que intenté hacer fue instalar linkchecker. Python 2.7 ya estaba instalado, venía con ArcGIS. pythony pipno estaban disponibles desde la línea de comandos hasta que instalé 3.4.1.
  • > pip search linkcheckerobras. 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 acceder 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 de si eso tiene algo que ver.

Aquí está el contenido de mi pip.log después de ejecutarlo 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
4
824

-----> 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 de paquetes de Python se migró de pypi.python.orga pypi.org. Esto significa que los comandos de "host de confianza" que utilizan el dominio antiguo ya no funcionan.

Arreglo permanente

Desde el lanzamiento de pip 10.0, debería poder solucionar esto permanentemente con solo actualizarse pip:

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

O simplemente reinstalándolo 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 correspondiente).

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 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, usa easy_install <package_name>. Tenga en cuenta que algunos paquetes no se encontrarán o darán pequeños errores.
  • Usando Wheel : descargue el paquete Wheel of the python y use el comando pip pip install wheel_package_name.whlpara instalar el paquete.
40
  • 7
    Tu actualización me puso las cosas en marcha. En mi caso, el cortafuegos corporativo se inserta como host de confianza para las conexiones SSL. Asumí que la configuración del proxy era incorrecta, pero la adición detallada mostró que el problema era SSL. El cambio de index-url solucionó el problema.
    peater
    25 de septiembre de 2015 a las 18:40
  • 13
    ¡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
    22/12/15 a las 19:18
  • 13
    ¿No es utilizar la versión HTTP (e incluso confiar en ella) también un riesgo de seguridad? 24/06/2016 a las 11:47
  • 3
    puede hacerlo tan corto como para ignorar el parámetro --index-url, pruebe este comando también debería estar bien: pip install --trusted-host pypi.python.org pythonPackage 23 de agosto de 2016 a las 4:43
  • 9
    no me funciona. Ejecutando 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 cumpla con el requisito" 11/04/18 a las 18:55
149
+25

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 especificar el certificado raíz de su empresa no funciona, tal vez el cURL funcione: http://curl.haxx.se/ca/cacert.pem

Debe utilizar un archivo PEM y no un archivo CRT. Si tiene un archivo CRT, deberá convertir el archivo a PEM. Hay informes en los comentarios de que esto ahora funciona con un archivo CRT, pero no lo he verificado.

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

10
  • 1
    El Curl one ES seguro. Sugeriría usar eso. 29 de septiembre de 2014 a las 10:18
  • 1
    @JeremyCook podría ser la hora en su servidor, si está en el pasado podría ser el proceso de verificación 26/01/15 a las 20:32
  • 1
    El formato CRT no es compatible, solo el formato PEM. Deberá convertir el formato CRT a PEM utilizando openssl. También debe verificar que el paquete que ha descargado contenga la CA raíz correcta. Consulte mi respuesta anterior para obtener más detalles: stackoverflow.com/a/28724886/41957 .
    chnrxn
    28/02/15 a las 14:38
  • 1
    @JeremyCook, los PEM / certs no provienen directamente del tercero del 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
    28/02/15 a las 14:43
  • 4
    @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 de forma permanente sin especificar en el comando 24 abr 2018 a las 13:30
95

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

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

Dentro de él 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.

6
  • Curiosamente, esto no está ayudando en mi máquina Win10: /
    mcandre
    14 de enero de 2019 a las 4:46
  • 1
    En el trabajo, entorno Windows 10, utilizando el emulador de consola Cmder. --trusted-host utilizado para resolver el problema "'SSLError (SSLCertVerificationError (1,' [SSL: CERTIFICATE_VERIFY_FAILED] error de verificación del certificado: certificado autofirmado en la cadena de certificados"). Hoy dejó de funcionar. Coloqué una copia de mi carpeta pip ( tomado de ../AppData/Local/) en ../AppData/Roaming/ y todo está bien con mi mundo de Python local nuevamente. ¡Muchas gracias! 3 de mayo de 2019 a las 16:00
  • 1
    ¡Excelente! Muchísimas gracias. --trusted-host no me funciona ahora, pero su solución me ayuda. 13/09/19 a las 12:05
  • 2
    ¿Por qué no se descargó esto al instalar Python?> 30 oct 2019 a las 18:11
  • ¡Impresionante! Estaba buscando errores relacionados con GIT, proxy de la empresa, SSL y solo estaba relacionado con pip. Gracias y espero que este comentario traiga aquí a gente confundida como yo.
    negas
    27/12/19 a las 15:20
69

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

Por ejemplo, en este caso puede hacer

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

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

1
  • Esto también funciona para otros comandos como pip list --trusted-host pypi.python.org --outdated
    Igor
    17 de agosto de 2017 a las 15:50
50

Las respuestas son bastante similares y un poco confusas. En mi caso, los certificados en la red de mi empresa fueron 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

1
  • Funciona porque hoy estoy detrás de un proxy que elimina el SSL normal. Normalmente no necesito especificar hosts confiables cuando los adultos manejan la red. 10/12/19 a las 21:05
40

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
1
  • No intente esta solución, desinstaló pip e incluso hizo que no pudiera reinstalar pip
    Weilory
    18/10/20 a las 22:35
31

Probé la mayoría de las soluciones proporcionadas en este blog de respuestas, sin embargo, ninguna de ellas funcionó , tuve esto ssl certificant errormientras intentaba instalar paquetes de Python.

Tengo éxito siguiendo el comando:

python -m pip install PACKAGENAME --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org 
3
  • 1
    eres una diosa 31 dic.20 a las 23:05
  • no funcionó para mi
    Joe
    11 y 16:12 de mayo
  • Después de mucha búsqueda finalmente esto lo hizo. Resulta que si estás en una red corporativa, a veces se meten con tu SSL o certificados o podrían tener algo que ver con el firewall / proxy. Pruebe con un punto de acceso móvil o algo si tiene un adaptador wi-fi que también funciona para mí. 19 de agosto a las 17:31
26

La forma más sencilla que he encontrado es descargar y utilizar "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 ícono de 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 de 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 formato CRT a PEM
  3. Exporte la variable de entorno PIP_CERT a la ruta del archivo PEM

(la última línea asume que está usando 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 hacer esto reutilizable, coloque DigiCertHighAssuranceEVRootCA.crt en algún lugar común y exporte PIP_CERT en consecuencia en su ~ / .bashrc.

2
  • 4
    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', funcionó a su manera ... solo pip install package. GRANDE +1: sí, tenemos un firewal / proxy / utm.
    Marlon
    22/03/2016 a las 17:58
  • Esto todavía me falló en Mac Mojave. Seguí exactamente los 3 pasos y todavía obtengo "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á. Intenté actualizar pip y obtuve el error SSL. Instalé pip desde cero con curl y todavía recibo el error cuando ejecuto pip. Es hora de deshacerse de pip y apegarse a conda :( 31/03/20 a las 21:57
26

Para solucionar este problema de una vez por todas, puedes verificar que tienes un pip.confarchivo.

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

On Unix the default configuration file is: $HOME/.config/pip/pip.conf which respects the XDG_CONFIG_HOME environment variable.

On macOS the configuration file is $HOME/Library/Application Support/pip/pip.conf if directory $HOME/Library/Application Support/pip exists else $HOME/.config/pip/pip.conf

On Windows the configuration file is %APPDATA%\pip\pip.ini.

Dentro de un virtualenv:

On Unix and macOS the file is $VIRTUAL_ENV/pip.conf

On Windows the file is: %VIRTUAL_ENV%\pip.ini

Su pip.confdebe verse como:

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

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

5
  • 1
    $ HOME / Library / Application Support / pip no existe en mi máquina, ¿hay una ubicación alternativa? 1 oct 2018 a las 19:31
  • Parece que la pipguía del usuario se ha actualizado desde que publiqué esta respuesta. Actualicé mi respuesta para macOS. ¿Te ayuda? 2 oct 2018 a las 0:43
  • No afecta el error SSL en mi máquina Win10: /
    mcandre
    14 de enero de 2019 a las 4:45
  • No soluciona el problema en MacOSX.
    MoDJ
    1 de julio de 2019 a las 15:37
  • Estoy en macOS. Si instaló python3 usando brew, asegúrese de que está usando pip3y cree el archivo pip.confas $HOME/.config/pip/pip.conf. Trabajé para mi.
    anu
    26/09/19 a las 13:41
26

Tiene las siguientes posibilidades para resolver el problema CERTIFICATE_VERIFY_FAILED:

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

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

  • Ejecutar 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 utilizar para especificar diferentes bases de datos de certificados PEP-476 .
  • Utilícelo --trusted-host <hostname>para marcar el host como de confianza.
  • En Python, use verify=Falsepara requests.get(consulte: Verificación de certificado SSL ).
  • Úselo --proxy <proxy>para evitar verificaciones de certificados.

Lea más en: Envoltorio TLS / SSL para objetos de socket - Verificación de certificados .

2
  • Desde su primer punto, ¿cómo especifico HTTP con el comando pip? 28/01/20 a las 0:26
  • 1
    @rayzinnz He agregado el ejemplo.
    kenorb
    28/01/20 a las 10:01
17

¡Ajuste la fecha y la hora correctamente!

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, utilizando el servidor https://files.pythonhosted.org/ .

Actualízalo así:

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

O directamente con, por ejemplo, la hora 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
1
  • Me ha estado volviendo loco durante horas, gracias por eso. El tiempo de PI se redujo en 10 días para mí causando (al parecer) todo tipo de errores durante la instalación de pip.
    SteveJ
    24 oct 2018 a las 0:32
15

Problema de SSL relacionado con Netscope en Windows 10 con Python 3.9

Tuve problemas de SSL debido a la seguridad de la red de la empresa relacionada con netscope . Mi máquina es Windows 10 con Python 3.9 y el siguiente comando funcionó para mí.

pip config set global.trusted-host "pypi.org files.pythonhosted.org pypi.python.org" --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org
2
  • Muchas gracias 7 de junio a las 13:30
  • Me salvaste la vida. También sospecho que NetSkope es el culpable.
    AmourK
    24 de agosto a las 17:19
14

Recientemente me encontré con este problema debido al filtro de contenido web de mi empresa que usa su propia Autoridad de Certificación para poder filtrar el tráfico SSL. PIP no parece estar usando los certificados CA del sistema en mi caso, produciendo el error que mencionas. 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: use easy_install. O no verifica los certificados (como la versión anterior de PIP), o sabe usar los certificados del sistema porque funciona siempre para mí 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.

1
  • El mismo problema aquí. Otra solución es exportar el certificado raíz de la empresa como un archivo y decirle pipque lo use con --cert MyCompanyRootCA.crt.
    glibdud
    30/04/18 a las 18:29
12

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 funcionar:

pip install --index-url=http://pypi.python.org/simple/ linkchecker
10
  • 1
    Esperaba que tu sugerencia funcionara. Locamente 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) 3 oct 14 a las 15:00
  • 3
    Ok, entonces otra solución es descargar el paquete tar.gz disponible aquí pypi.python.org/pypi/LinkChecker/9.3 e instalarlo con: pip install LinkChecker-9.3.tar.gz 3 oct 14 a las 15:35
  • 3
    Pero si el paquete que quieres instalar tiene dependencias tienes que descargar e instalar también todas las dependencias, si son muchas esto podría convertirse en una pesadilla. 3 oct 14 a las 15:37
  • 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, tal vez, ¿cuál es 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. exportar el certificado de la empresa, convertir a PEM 3. easy_install en cygwin 4. --trusted-host
    charo
    8 de ene. De 2019 a las 20:04
  • 2
    El ahora funciona a partir de 2017: el acceso HTTP se ha cortado por completo. mail.python.org/pipermail/distutils-sig/2017-October/… 25/01/19 a las 21:21
11

TLDR:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt -vvv

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <packageName> -vvv

Entonces, ya tengo más de 30 respuestas a la pregunta, pero nada funcionaba para mí en junio de 2020 (mientras estaba encerrado).
todos se dieron en diferentes momentos del pasado. Intentaré que esta respuesta funcione en todo momento en el futuro. El problema es que mientras pip instala el paquete, intenta conectarse con la URL del host donde se almacena el paquete y no confía en la URL mientras lo descarga.

Hay dos formas de resolver esto: Fácil y no seguro: 1. Verifique qué URL es golpeada por pip para descargar el paquete.

pip install <packageName> -vvv

si revisa cuidadosamente la salida, verá que podría ir a alguna URL como pypi.org o puede ser pypi.python.org.

si es así, simplemente agregue la opción de host confiable al comando como se muestra a continuación:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <packageName> -vvv

o si está utilizando el archivo de requisitos:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt -vvv

Manera segura:

Vaya a cada una de estas URL y descargue su certificado público (solo google cómo descargar), cree una cadena, guárdela como archivo .pem y ejecute el siguiente comando:

pip --cert YourPemFile.pem install <packageName>
9

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

easy_install pip==1.2.1
pip install --upgrade pip
1
  • gracias, esto funcionó como un encanto para mí !! 9 de diciembre de 2020 a las 4:14
9

Las respuestas para usar

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

trabaja. Pero tendrás que comprobar si hay redireccionamientos o si los cachés pipestán funcionando. 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.

9

Tienes 4 opciones:

Usando un certificado como parámetro

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

Usando 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

7

En primer lugar,

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

no funcionó para mí. 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 confiable en lugar de pypi.python.org. Eso casi me lleva 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, la incluí como host confiable. Lo que finalmente funcionó para mí fue:

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package name>
1
  • Solo tu respuesta funcionó para mí. ¿Alguna idea de cómo especificar la configuración de host confiable en VS Code?
    FMFF
    7 de septiembre de 2020 a las 4:34
5

Tuve el mismo problema al intentar pip install ftputilcon ActivePython 2.7.8, ActivePython 3.4.1 y "stock" Python 3.4.2 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 degradando a pip 1.2.1: easy_install pip==1.2.1(consulte https://stackoverflow.com/a/16370731/234235 ). La misma solución también funcionó para ActivePython 2.7.8.

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

2
  • 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 tratando con paquetes antiguos de django, por lo que la versión anterior de pip en realidad coincidía con los otros paquetes.
    mknaf
    2 jun 15 a las 15:20
  • El número 829 ya está cerrado. 15/12/15 a las 13:48
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 / DLLs:

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll

2
  • Con Anaconda 2019.03, he copiado los siguientes archivos de la <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 agrego un error ConnectTimeout, por lo que se actualizó la configuración del proxy .condarc 15/07/19 a las 12:38
  • Obras. ¡Hombre, eres GENIO! He estado deambulando por los foros durante 1,5 horas, solo para encontrar esta solución simple y subestimada.
    ivan866
    6 mar.20 a las 14:46
5

¡No te saltes! Solución segura encontrada para Linux

Todas las soluciones de agregar pypi.orga sitios confiables --trusted-hostno son seguras, básicamente saltarse https, no soluciona realmente el problema .
Todos los que usan este enfoque, intenten actualizar su certificado de esta manera y elimine la --trusted-hostbandera:

sudo yum -y update ca-certificates
export PIP_CERT=/etc/ssl/certs/ca-bundle.crt 

¡La seguridad importa!

1
  • 3
    ¿Puedes ayudar con un equivalente de esto para Mac? 14 de enero a las 14:43
4

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

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

Por lo tanto, verifique la URL en la que realmente está fallando a través de la opción --verbose.

4

Solución corta:

easy_install <package name>

Por ejemplo:

easy_install pandas

Solución alternativa:

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

Ejemplo:

pip install pandas --trusted-host pypi.org --trusted-host files.pythonhosted.org
3

Solo pongo esto aquí porque no veo que nadie lo mencione.

Puede configurar el host globalmente confiable para pip así:

py -m pip config set global.trusted-host pypi.org

y lo más importante, devolverá el lugar correcto donde se coloca el pip.ini / pip.conf

2

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

5
  • Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden dejar de ser válidas si cambia la página enlazada. - De la revisión
    apomene
    26 de agosto de 2016 a las 7:57
  • @apomene, ¿cómo se supone que lo haga OP include the essential parts of the answer hereya que es un enlace a un archivo binario ...? 26/08/2016 a las 9:33
  • @ThomasAyoub, creo que ya sabe que el mensaje anterior se completa automáticamente desde SO, al marcar una respuesta como única respuesta de enlace
    apomene
    26/08/2016 a las 9:41
  • @apomene que no responde a mi pregunta, todavía no veo qué OP podría / debería agregar? 26/08/16 a las 9:44
  • 1
    @ThomasAyoub, Para desarrollar más, mi comentario (SO) indica que la pregunta es corta y solo tiene un enlace, lo que significa que podría ser mejor 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
    26/08/16 a las 9:49
2

Puedes probar esto para ignorar "https":

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [your package..]
1
  • 1
    si incluso tiene otros problemas con la versión pip, puede probar esto pip install --trusted-host pypi.python.org --upgrade pip – 9 de agosto de 2017 a las 4:53
2

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 funciona bien para mí.

Recibí el siguiente error al intentar instalar numpy usando pip o desde visual studio. Recopilando numpy No se pudo recuperar la URL https://pypi.python.org/simple/numpy/ : Hubo un problema al confirmar el certificado ssl: [SSL: CERTIFICATE_VERIFY_FAILED] certificado de verificación fallido (_ssl.c: 748) - omitiendo No se pudo encontrar una versión que cumpla con el requisito numpy (de versiones:) No se encontró una distribución coincidente para numpy

Resolución:

Para el sistema operativo Windows

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

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

[global]
cert = C:/certs/python_root.pem
proxy = http://[email protected]_company.com:[email protected]_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_[email protected]_company.com:[email protected]_ip:proxy_port \
   --cert C:/certs/python_root.pem PyQt5

Para convertir los *.cerarchivos de certificado al *.pemformato requerido , ejecute la siguiente instrucción:

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

¡Espero que esto ayude a alguien!

2
  • 1
    Para otros sistemas operativos, eche un vistazo a la respuesta de Alex-Antoine Fortin
    Dinei
    17/04/18 a las 17:59
  • No necesitaba el proxy, solo el certificado. Yo corrípip3.6 config set global.cert '/<path>/server.crt' 16 oct 2018 a las 21:05
2

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

pip install pip_system_certs

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

This package patches pip and requests at runtime to use certificates from the default system store (rather than the bundled certs ca).

This will allow pip to verify tls/ssl connections to servers who’s cert is trusted by your system install.

2
  • 4
    parece necesario instalar pip_sysem_certs para anular el error [SSL: CERTIFICATE_VERIFY_FAILED], el problema es que, al intentar instalarlo, aparece el error [SSL: CERTIFICATE_VERIFY_FAILED] ...
    athos
    17/06/19 a las 8:26
  • Esto 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
    14/01/20 a las 22:09