pip está configurado con ubicaciones que requieren TLS / SSL, sin embargo, el módulo ssl en Python no está disponible

216

Estoy usando Python3.6, cuando intento instalar "módulos" usando pip3, me enfrento al problema mencionado a continuación "pip está configurado con ubicaciones que requieren TLS / SSL, sin embargo, el módulo ssl en Python no está disponible"

Santosh Kumar G
fuente
1
¿sistema operativo?
ZiTAL
1
El sistema operativo es Oracle Linux 7.x
Santosh Kumar G
1
¿Instalaste pip desde el administrador de paquetes? Si instaló la compilación, primero instale libssl-devo instale SSL desde pip pip install ssl stackoverflow.com/questions/41098252/…
ZiTAL
37
@ZiTAL pipno funciona porque ssly pides instalar ssl, con pip :)
Ramazan Polat

Respuestas:

191

Para Windows 10 si desea usar pip en cmd normal, no solo en el indicador de Anaconda. necesita agregar 3 rutas de entorno. como los siguientes:

D:\Anaconda3; 
D:\Anaconda3\Scripts; 
D:\Anaconda3\Library\bin 

la mayoría de las personas solo agregan D: \ Anaconda3 \ Scripts;

无名 小路
fuente
1
Gracias, agregué D: \ Anaconda3 \ Library \ bin y funciona, por cierto, libssl-1_1-x64.dll está en esa carpeta. (win10x64, python 3.7)
apet
cuando agrega esos tres en su camino, cierre el cmd, regrese a él e intente nuevamente, debería funcionar.
user3568896
¿Qué quieres decir con rutas ambientales? ¿te refieres a la variable de entorno PATH? Además, no tengo esas carpetas en mi unidad D, ¿se supone que deben crearse cuando instalo Anaconda?
Amit Raz
Un también para Windows 8.1
Antoine
1
Esto NO funciona si uno no está usando Anaconda. He experimentado este problema con las instalaciones OSGeo4W64 y QGIS 3.10.2. Agregar lo que creo que son las rutas correctas a la variable PATH no soluciona el problema (por ejemplo:) C:\Program Files\QGIS 3.10\apps\Python37\Scripts.
CNIDog
185

MAC OS

Tuve el mismo problema en Mac OS (Mojave) y resolví el problema como se menciona en este enlace: problema de Openssl .

  1. Si no tiene Homebrew o no sabe qué es Homebrew:

    / usr / bin / ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

  2. O si ya tienes instalado Homebrew:

brew update && brew upgrade
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Actualización: Tenga en cuenta que tuve que usar --ignore-dependenciesflag, porque se instalaron otros paquetes que dependen de OpenSSL.

Adicional si el problema es causado después de usar pyenv , puede solucionarlo usando:

brew reinstall python
Vaulstein
fuente
55
Después de instalar otra Python versión, pip se rompió. Esta solución me ayudó a reparar.
iMitwe
15
¿por qué github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb también se agrega como una dependencia? :) Creo que debería eliminarse ya que no tiene ninguna relación y es potencialmente inseguro
Marque
1
Entiendo que podría ser un riesgo de seguridad, pero todos los usuarios han pedido usar el paquete a través del enlace oficial del paquete: github.com/kelaberetiv/TagUI/issues/635
Vaulstein
1
@Vaulstein Ahora que lo mencionas. Creo que instalé algunos paquetes usando brew también antes de que esto se rompiera. Fue gpg.
adicto
3
Después de actualizar de Mojavea Catalina, golpeé esto. Solo necesitaba brew update && brew upgradeque volviera a funcionar. ¡Gracias por el consejo!
rustyMagnet
35

Para los usuarios de Debian, lo siguiente puede ser útil:

sudo -s

apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.5 libgdm-dev libdb4o-cil-dev libpcap-dev

Luego cd a la carpeta con el código fuente de la biblioteca Python 3.X y ejecute:

./configure
make
make install
Rafael B
fuente
@MehmetKurtipek, edité la respuesta para aclarar un paso. Si esto todavía no ayuda, por favor aclare su problema
Rafael B
55
Resultó que Python3.7 tiene buenos problemas junto con Ubuntu 14.04 y versiones anteriores. El paquete SSL mínimo requerido para Python3.7 no es compatible con el antiguo ubuntus. Así que gracias por editar :)
Mehmet Kurtipek
@MehmetKurtipek Mi servidor es 1404. Entonces, ¿cuál es la última versión de Python que no tiene este problema? Tengo Python 3.7.4 tiene el mismo problema ...
una oferta no puede rechazar el
@MehmetKurtipek ¿Has resuelto el problema sin actualizar el sistema? También estoy trabajando el 14.04
una oferta no puede rechazar el
usando mint19 y python 3.8, esto solucionó mi problema
5uperdan
21

Para los futuros usuarios de Oracle Linux que intenten resolver esto, a continuación es lo que funcionó para mí. Primero instale libs faltantes:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel 
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

Luego cd a tu biblioteca Python3.X y ejecuta:

make
make install 
limboy
fuente
1
Esta respuesta ha abordado bien el problema en mi CentOS 7.
Max
¿Qué son estas bibliotecas? ¿Por qué se requieren?
Mohit Motwani
Hacer una conexión segura a través de Internet requiere esto, por ejemplo, cuando ejecuta 'pip install'
limboy
@MohitMotwani - fuhgeddaboudit ... urbandictionary.com/define.php?term=fuhgeddaboudit
barrypicker
20

Para centos 7:

Instalar openssl:

sudo yum install openssl-devel

ahora vamos al directorio de Python donde extrajimos el tar de Python,

ejecutar debajo de los comandos

sudo ./configure
sudo make
sudo make install

Esto solucionará el problema en centos ...

PDHide
fuente
10

Para Windows 10, Windows 7 Si la instalación de pip no funciona en el indicador CMD, ejecútelo utilizando el indicador Anaconda: funciona.

https://github.com/pypa/virtualenv/issues/1139

Tokci
fuente
66
Sé la respuesta correcta, si desea usar pip en cmd normal, no Anaconda prompt, necesita agregar 3 rutas de entorno: como estas: D: \ Anaconda3; D: \ Anaconda3 \ Scripts; D: \ Anaconda3 \ Library \ bin ahora solo Scripts!
小路 小路
8

En caso de que su python esté pyenvinstalado, donde pyenv está instalado con homebrew en macOS, podría haber una versión más nueva disponible que solucione esto:

$ brew update && brew upgrade pyenv

Luego reinstale la versión de Python:

$ pyenv install 3.7.2
pyenv: /Users/luckydonald/.pyenv/versions/3.7.2 already exists
continue with installation? (y/N) 

Tenga en cuenta que es un poco sucio sobrescribir la instalación de Python existente de esa manera, pero en mi caso funcionó.

luckydonald
fuente
5

Para OpenSUSE de la misma manera, pero con algunos cambios de los paquetes mencionados anteriormente:

zypper install zlib-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel

Luego cda las fuentes de Python dir y

make
make install

o

make
make altinstall

Y quizá

ln -s /usr/local/lib64/python3.6/lib-dynload/ /usr/local/lib/python3.6/lib-dynload

debe ejecutarse para usuarios de OpenSUSE. Vea que la instalación de Python 3.7 no funciona en openSUSE Leap 42.3

Evgeny
fuente
5

Similar a la solución anterior , reinstale la versión de Python con pyenv.

De alguna manera, actualicé mi opensslque rompió la versión pyenv python.

pyenv install 3.6.8
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
...

La primera línea dice que se basa en el homebrew openssl.

Izana
fuente
4

Simplemente intente instalar a través de Anaconda prompt

Nishant Wattamwar
fuente
4

Trabajó para mi.

apt-get install libssl-dev

Use esto para habilitar SSL para pip. Avíseme si alguien encuentra problemas.

naman1994
fuente
3

Me encontré con este problema con Visual Studio Code instalando pylint desde el indicador de VS Code. Pude superar el problema abriendo el directorio de instalación de Anaconda y ejecutando

pip install pylint

Entonces VS Code estaba contento, pero eso no solucionó el problema mientras se ejecutaba

& C:/Users/happy/Anaconda3/python.exe -m pip install -U pylint

prácticamente dio el mismo error, por lo que parece que VS Code no puede acceder a los módulos de Python.

Tenga en cuenta que VS Code recoge el primer entorno python que ve cuando está instalado, la parte inferior izquierda de la pantalla indica qué entorno se está utilizando. Al hacer clic en esa área, se puede configurar el entorno. Entonces, incluso si ejecutó la instalación de pip para un entorno, VS Code podría estar buscando uno diferente.

El mejor enfoque era asegurarse de que el código VS tenía seleccionado el entorno Python correcto y que el mismo entorno está en la RUTA del sistema (en Propiedades del sistema -> Avanzado -> Variables ambientales)

Bajo la variable de ruta, edite y busque el directorio específico de Anaconda que desea que VSCode use y agregue a PATH, necesitaba agregar lo siguiente:

C:\Users\happy\Anaconda3\
C:\Users\happy\Anaconda3\Scripts\
C:\Users\happy\Anaconda3\Library\bin\
C:\Users\happy\Anaconda3\Library\mingw-w64\bin\

Su directorio de instalación de Anaconda puede diferir. Una nota es que Windows no tiene efecto en la variable PATH hasta que reinicie el terminal. En este caso, cierre y vuelva a abrir el código VS. Si usa una Terminal o PS Shell, cierre y vuelva a abrir y verifique la Ruta para asegurarse de que esté incluida.

FastGTR
fuente
3

Estoy usando Windows 10 e instalé Miniconda 3 con Python 3.7.

Resolví este error siguiendo este https://github.com/conda/conda/issues/8273

Específicamente, copié los siguientes archivos de C:\Users\MyUser\Miniconda3\Library\bina C:\Users\MyUser\Miniconda3\DLLs:

  • libcrypto-1_1-x64.dll
  • libcrypto-1_1-x64.pdb
  • libssl-1_1-x64.dll
  • libssl-1_1-x64.pdb
datchung
fuente
2

Si no tiene Chocolatey, instálelo, desde aquí: https://chocolatey.org/docs/installation

Puede copiar y pegar una línea de comando y ejecutarla desde el símbolo del sistema con privilegios elevados.

Instale anaconda, usando la línea de comando:

choco install anaconda3

Establecer variables de entorno:

set PATH=C:\tools\Anaconda3\Scripts;C:\tools\Anaconda3;C:\tools\Anaconda3\Library\bin;%PATH%

y luego ejecuta el comando que falló. En mi caso fue:

pip install conan

Anaconda usa una instalación de python separada, y pip también es específica de anaconda.

TarmoPikaro
fuente
1

Como dijo Tokci, también funciona para Windows 7.

"Vaya con el mouse al ícono de Windows (abajo a la izquierda) y comience a escribir" Anaconda ". Debería aparecer algunas entradas coincidentes. Seleccione" Símbolo de Anaconda ". Se abrirá una nueva ventana de comando, llamada" Símbolo de Anaconda ".

Entonces pip funciona.

Lo siguiente también ayudó a importar xgboost: https://www.youtube.com/watch?v=05djBSOs1FA

Ayan Omarov
fuente
Buscando el equivalente de Linux ... pero de todos modos, ¿por qué esto funcionaría y usar pip desde la línea de comando no funcionará? Esto solo tiene sentido si ya ha reconstruido el pitón de Anaconda con SSL de antemano en algún momento.
matanster
No tengo idea de por qué, pero lo que dices suena razonable
Ayan Omarov
1

Si alguien usa Arch Linux OS, resolví el problema de TLS / SSL ejecutando esto:

sudo pacman -S openssl

Entonces podría usar pip para instalar el paquete que necesitaba:

pip install openpyxl
Anny Gutiérrez
fuente
1

Vaya al indicador de Anaconda y escriba (si tiene python 3.x instalado en su motor):

py -m pip install pymysql 

Estaba teniendo el mismo problema y esto resolvió mi problema. más tarde, después de hacer esto, puede importar pymysql en power shell o cualquier otro indicador.

Jay Chhatrala
fuente
1

Encontré este problema al instalar Python 3.8 desde la fuente en ubuntu. A continuación se resumen los pasos necesarios para instalarlo correctamente junto con el python 3.7 predeterminado:

sudo apt -y install libssl-dev zlib1g-dev build-essential

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -xf Python-3.8.0.tgz
cd Python-3.8.0/

./configure --enable-optimizations
make
sudo make altinstall

La instrucción de instalación para zlib1g-dev y build-essential es redundante, ya que el escritorio ubuntu ya los tiene, pero era necesaria para algunas de las instancias EC2 de Amazon. Python 3.8.0 es la versión actual en este momento, pero debe reemplazarse con la última disponible.

Estas instrucciones son las mejores para mantener python 3.7 como predeterminado para python3 y ejecutar python 3.8 en un entorno virtual.

dmdip
fuente
1

El problema se debe a que falta el paquete OpenSSL en su PC.

Si pip install openpyxltambién da error.

puede solucionar esto instalando OpenSSL (Win64 OpenSSL v1.1.1g) desde el siguiente sitio:

slproweb.com/products/Win32OpenSSL.html

Reinicie el IDE que está utilizando para que los cambios surtan efecto.

Ashwani Singh
fuente
0

Me encontré con este problema! Accidentalmente instalé la versión de 32 bits de Miniconda3. ¡Asegúrese de elegir la versión de 64 bits!

Miguel
fuente
0

Esto funcionó para mí:

yum install python36-pyOpenSSL 

La versión de Python y el administrador de paquetes pueden diferir.

Andrysha
fuente
0

Lo intenté:

python -m pip install --upgrade pip

Y después de eso, funciona bien para mí en Windows 10.

Raj Kumar
fuente
0

Se solucionó esto sin tener que cambiar nada relacionado con TSL / SSL.

Estaba tratando de ver si sucedía lo mismo pip, y vi que pipestaba roto. Investigué un poco y me di cuenta de que probablemente fue causado por Homebrew eliminado python@2el 1 de febrero de 2020.

Ejecutando brew uninstall python@2para eliminar python2 instalado por Homebrew.

Destruyó el entorno virtual creado usando python3y creó uno nuevo.
pip3la instalación funciona bien de nuevo.

Gary Bao Yutong 鲍昱 彤
fuente
3
Para mí, cambiar a una versión anterior de openssltrabajado: brew switch openssl 1.0.2t estoy en Mac OS Catalina 10.15.3. Espero eso ayude.
viraj.kulkarni
0

En mi caso, reinstalé pyhone. Solucionó el problema.

brew reinstall python
usuario2446776
fuente
-1

Este es el problema con su configuración predeterminada de SSL. Debes descargar Python3 y agregar la ruta a tu sistema. Si usa Pycharm, configure el intérprete en su ruta de python3. Entonces normalmente puede usar el pip3 sin error.

Tritón
fuente
-1

El problema probablemente proviene de la versión instalada del paquete openssl. Ese fue el caso para mí y arreglé este problema simplemente actualizándolo. Estoy en Mac OS, usando brew:

brew upgrade openssl

Si instaló python con brew, esto debería solucionar directamente el problema, ya que python depende de openssl

claudod
fuente
-1

Lo probarías de Anaconda Prompt.

Verá (base), ahora actualice pip. Ejemplo:

(base) C:\Users\Tom>cd ..

(base) C:\Users>cd ..

(base) C:\>python -m pip install --upgrade pip
Requirement already up-to-date: pip in g:\anaconda3\lib\site-packages (20.0.2)

(base) C:\>pip -V
pip 20.0.2 from G:\Anaconda3\lib\site-packages\pip (python 3.7)

# Try install
(base) C:\>pip install selenium

Esto lleva más tiempo, pero también instalará o actualizará las bibliotecas SSL que Anaconda usa internamente. Sigue yendo aquí

Gionthelawa
fuente
Esta respuesta supone usar conda en Windows, no vanilla python en Linux como lo indicó el OP
hrbdg