pip est configuré avec des emplacements qui nécessitent TLS / SSL, mais le module ssl en Python n'est pas disponible

216

J'utilise Python3.6, lorsque j'essaie d'installer des "modules" en utilisant pip3, je suis confronté au problème mentionné ci-dessous "pip est configuré avec des emplacements qui nécessitent TLS / SSL, mais le module ssl en Python n'est pas disponible"

Santosh Kumar G
la source
1
système opérateur?
ZiTAL
1
Le système d'exploitation est oracle linux 7.x
Santosh Kumar G
1
Avez-vous installé pip à partir du gestionnaire de packages? Si vous avez installé la compilation, installez libssl-devou installez d'abord ssl à partir de pip pip install ssl stackoverflow.com/questions/41098252
...
37
@ZiTAL pipne fonctionne pas car sslet vous demandez l'installation ssl, avec pip :)
Ramazan Polat

Réponses:

191

Pour Windows 10, si vous souhaitez utiliser pip dans la cmd normale, pas seulement dans l'invite Anaconda. vous devez ajouter 3 chemins d'environnement. comme les suivants:

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

la plupart des gens n'ajoutent que D: \ Anaconda3 \ Scripts;

无名 小路
la source
1
Merci, j'ai ajouté D: \ Anaconda3 \ Library \ bin et cela fonctionne, d'ailleurs le libssl-1_1-x64.dll est dans ce dossier. (win10x64, python 3.7)
apet
lorsque vous ajoutez ces trois dans votre chemin, fermez la cmd, revenez-y et essayez à nouveau, cela devrait fonctionner.
user3568896
Qu'entendez-vous par chemins d'environnement? voulez-vous dire la variable d'environnement PATH? plus je n'ai pas ces dossiers dans mon lecteur D, sont-ils censés être créés lorsque j'installe Anaconda?
Amit Raz
Un aussi pour Windows 8.1
Antoine le
1
Cela ne fonctionne PAS si l'on n'utilise pas Anaconda. J'ai rencontré ce problème avec les installations OSGeo4W64 et QGIS 3.10.2. L'ajout de ce que je considère être les chemins corrects de la variable PATH ne résout pas le problème (ex:) C:\Program Files\QGIS 3.10\apps\Python37\Scripts.
CNIDog
186

MAC OS

J'ai eu le même problème sur Mac OS (Mojave) et j'ai résolu le problème comme mentionné sur ce lien - Problème Opensl .

  1. Si vous n'avez pas Homebrew ou ne savez pas ce qu'est Homebrew:

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

  2. Ou si vous avez déjà installé Homebrew:

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

Mise à jour: gardez à l'esprit que je devais utiliser --ignore-dependencies drapeau, car d'autres packages installés dépendent d'OpenSSL.

Supplémentaire si le problème est causé après l'utilisation de pyenv , vous pouvez le résoudre en utilisant:

brew reinstall python
Vaulstein
la source
5
Après avoir installé une autre Python version, pip était cassé. cette solution m'a aidé à réparer.
iMitwe
15
pourquoi github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb est- il également ajouté en tant que dépendance? :) Je pense qu'il devrait être supprimé car il est totalement indépendant et potentiellement non sécurisé
Mark
1
Je comprends que cela pourrait être un risque pour la sécurité, mais partout les utilisateurs ont demandé à utiliser le package via le lien officiel du package - github.com/kelaberetiv/TagUI/issues/635
Vaulstein le
1
@Vaulstein Maintenant que vous en parlez. Je pense que j'ai également installé des paquets en utilisant brew avant que cela ne casse. C'était gpg.
accro
3
Après la mise à niveau de Mojaveà Catalina, j'ai frappé ceci. J'avais seulement besoin brew update && brew upgradeque cela fonctionne à nouveau. Merci pour le conseil!
rustyMagnet
35

Pour les utilisateurs Debian, les éléments suivants peuvent être utiles:

sudo -s

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

Ensuite, accédez au dossier contenant le code source de la bibliothèque Python 3.X et exécutez:

./configure
make
make install
Rafael B
la source
@MehmetKurtipek, j'ai édité la réponse pour clarifier une étape. Si cela ne vous aide toujours pas, veuillez clarifier votre problème
Rafael B
5
s'est avéré que Python3.7 avait de beaux problèmes avec Ubuntu 14.04 et plus. Le package SSL minimum requis pour Python3.7 n'est pas compatible avec l'ancien ubuntus. Alors merci pour l'édition :)
Mehmet Kurtipek
@MehmetKurtipek Mon serveur est 1404. Quelle est donc la dernière version de python qui n'a pas ce problème. J'ai python 3.7.4 j'ai le même problème ...
une offre ne peut pas refuser
@MehmetKurtipek Avez-vous résolu le problème sans mettre à niveau le système? Je travaille également le 14.04
une offre ne peut pas refuser
en utilisant mint19 et python 3.8, cela a résolu mon problème
5uperdan
21

Pour les futurs utilisateurs d'Oracle Linux qui tentent de résoudre ce problème, voici ce qui a fonctionné pour moi. Installez d'abord les bibliothèques manquantes:

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

Ensuite, accédez à votre bibliothèque Python3.X et exécutez:

make
make install 
limboy
la source
1
Cette réponse a bien résolu le problème sur mon CentOS 7.
Max
Quelles sont ces bibliothèques? Pourquoi sont-ils nécessaires?
Mohit Motwani
Faire une connexion sécurisée sur Internet nécessite cela - par exemple lorsque vous exécutez 'pip install'
limboy
@MohitMotwani - fuhgeddaboudit ... urbandictionary.com/define.php?term=fuhgeddaboudit
barrypicker
20

Pour centos 7:

Installez openssl:

sudo yum install openssl-devel

maintenant allez dans le répertoire python où nous avons extrait le tar python,

exécuter sous les commandes

sudo ./configure
sudo make
sudo make install

Cela résoudra le problème dans centos ...

PDHide
la source
10

Pour Windows 10, Windows 7 Si l'installation de pip ne fonctionne pas à l'invite CMD, exécutez-la à l'aide de l'invite Anaconda - cela fonctionne.

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

Tokci
la source
6
Je connais la bonne réponse, si vous voulez utiliser pip dans cmd normal, pas à l'invite Anaconda, vous devez ajouter 3 chemins d'environnement: comme ceux-ci: D: \ Anaconda3; D: \ Anaconda3 \ Scripts; D: \ Anaconda3 \ Library \ bin maintenant uniquement des scripts!
无名 小路
8

pyenvSi votre python est installé, où pyenv est installé avec homebrew sur macOS, il se peut qu'une version plus récente soit disponible pour résoudre ce problème:

$ brew update && brew upgrade pyenv

Puis réinstallez la version python:

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

Notez que c'est un peu sale d'écraser l'installation de python existante comme ça, mais dans mon cas, cela a fonctionné.

chanceydonald
la source
5

Pour OpenSUSE de la même manière, mais quelques modifications des packages listés ci-dessus:

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

Puis cdvers les sources Python dir et

make
make install

ou

make
make altinstall

Et peut-être

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

doit être exécuté pour les utilisateurs d'OpenSUSE. Voir l' installation de Python 3.7 ne fonctionne pas sur openSUSE Leap 42.3

Evgeny
la source
5

Similaire à la solution ci-dessus réinstallez la version python avec pyenv.

D'une manière ou d'une autre, j'ai mis à niveau mon opensslqui a cassé la version pyenv python.

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

La première ligne dit qu'il s'appuie sur l'homebrew openssl.

Izana
la source
4

Essayez simplement d'installer via l'invite Anaconda

Nishant Wattamwar
la source
4

A travaillé pour moi.

apt-get install libssl-dev

Utilisez ceci pour activer ssl pour pip. Faites-moi savoir si quelqu'un rencontre des problèmes.

naman1994
la source
3

J'ai rencontré ce problème avec Visual Studio Code en installant pylint à partir de l'invite VS Code. J'ai pu surmonter le problème en ouvrant le répertoire d'installation d'Anaconda et en exécutant

pip install pylint

Ensuite, VS Code était heureux, mais cela n'a pas résolu le problème en cours d'exécution

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

a donné à peu près la même erreur, il semble donc que VS Code ne puisse pas accéder aux modules python.

Notez que VS Code récupère le premier env python qu'il voit lorsqu'il est installé, le coin inférieur gauche de l'écran indique quel env est utilisé. Cliquer sur cette zone permet de définir l'environnement. Ainsi, même si vous exécutez l'installation de pip pour un environnement, VS Code pourrait en rechercher un autre.

La meilleure approche était de s'assurer que le code VS avait le bon environnement python sélectionné et que le même environnement se trouve dans le PATH système (sous Propriétés système -> Avancé -> Variables d'environnement)

Sous la variable de chemin, modifiez et accédez au répertoire Anaconda spécifique que vous souhaitez que VSCode utilise et ajoute à PATH, j'avais besoin d'ajouter ce qui suit:

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

Votre répertoire d'installation Anaconda peut différer. Une note est que Windows ne prend pas effet la variable PATH tant que vous ne redémarrez pas le terminal. Dans ce cas, fermez et réopérez le code VS. Si vous utilisez un terminal ou un PS Shell, fermez et rouvrez et vérifiez Chemin pour vous assurer qu'il est inclus.

FastGTR
la source
3

J'utilise Windows 10 et j'ai installé Miniconda 3 avec Python 3.7.

J'ai résolu cette erreur en suivant cette https://github.com/conda/conda/issues/8273

Plus précisément, j'ai copié les fichiers suivants de C:\Users\MyUser\Miniconda3\Library\binvers 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
la source
2

Si vous n'avez pas Chocolatey, installez-le - à partir d'ici: https://chocolatey.org/docs/installation

Vous pouvez simplement copier-coller une ligne de commande et l'exécuter à partir de l'invite de commande avec des privilèges élevés.

Installez anaconda, en utilisant la ligne de commande:

choco install anaconda3

Définissez les variables d'environnement:

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

puis exécutez la commande qui a échoué. Dans mon cas, c'était:

pip install conan

Anaconda utilise une installation python distincte, et pip est également spécifique à anaconda.

TarmoPikaro
la source
1

Comme l'a dit Tokci, cela fonctionne également pour Windows 7.

"Allez avec la souris sur l'icône Windows (en bas à gauche) et commencez à taper" Anaconda ". Il devrait y avoir des entrées correspondantes. Sélectionnez" Anaconda Prompt ". Une nouvelle fenêtre de commande, nommée" Anaconda Prompt "va s'ouvrir."

Puis pip fonctionne.

Les éléments suivants ont également aidé à importer xgboost: https://www.youtube.com/watch?v=05djBSOs1FA

Ayan Omarov
la source
Vous recherchez l'équivalent Linux ... mais de toute façon, pourquoi cela fonctionnerait-il et l'utilisation de pip à partir de la ligne de commande ne le ferait pas? cela n'a de sens que si vous avez déjà reconstruit le python d'anaconda avec SSL au préalable à un moment donné.
matanster le
Je ne sais pas pourquoi mais ce que vous dites semble raisonnable
Ayan Omarov
1

Si quelqu'un utilise Arch Linux OS, j'ai résolu le problème TLS / SSL en exécutant ceci:

sudo pacman -S openssl

Ensuite, je pourrais utiliser pip pour installer le package dont j'avais besoin:

pip install openpyxl
Anny Gutierrez
la source
1

Accédez à l'invite Anaconda et saisissez (si python 3.x est installé sur votre moteur):

py -m pip install pymysql 

J'avais le même problème et cela a résolu mon problème. plus tard, après cela, vous pouvez importer pymysql dans Power Shell ou dans toute autre invite.

Jay Chhatrala
la source
1

Rencontré ce problème lors de l'installation de python 3.8 à partir des sources sur ubuntu. Les étapes nécessaires pour l'installer avec succès aux côtés du python 3.7 par défaut sont résumées ci-dessous:

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

L'instruction d'installation pour zlib1g-dev et build-essential est redondante, car ubuntu desktop les a déjà, mais était nécessaire pour certaines des instances EC2 d'Amazon. python 3.8.0 est la version actuelle à l'instant, mais devrait être remplacée par la dernière disponible.

Ces instructions sont idéales pour conserver python 3.7 par défaut pour python3 et exécuter python 3.8 dans un environnement virtuel.

dmdip
la source
1

Le problème est dû au fait que le package OpenSSL est manquant sur votre PC.

Si pip install openpyxl donne également une erreur.

vous pouvez résoudre ce problème en installant OpenSSL (Win64 OpenSSL v1.1.1g) à partir du site ci-dessous:

slproweb.com/products/Win32OpenSSL.html

Redémarrez l'EDI que vous utilisez pour que les modifications soient appliquées.

Ashwani Singh
la source
0

J'ai rencontré ce problème! J'ai accidentellement installé la version 32 bits de Miniconda3. Assurez-vous de choisir la version 64 bits!

Mike
la source
0

Cela a fonctionné pour moi:

yum install python36-pyOpenSSL 

La version de python et le gestionnaire de packages peuvent différer.

Andrysha
la source
0

J'ai essayé:

python -m pip install --upgrade pip

Et après cela, cela fonctionne bien pour moi dans Windows 10.

Raj Kumar
la source
0

Correction de cela sans avoir à changer quoi que ce soit lié à TSL / SSL.

J'essayais de voir si la même chose se produisait pip, et j'ai vu que pipc'était cassé. J'ai creusé et réalisé que cela était probablement causé par la suppression de Homebrew python@2le 1er février 2020.

Fonctionnement brew uninstall python@2 pour supprimer python2 installé par Homebrew.

Détruit l'environnement virtuel créé à l'aide python3et en a créé un nouveau.
pip3l'installation fonctionne à nouveau bien.

Gary Bao Yutong 鲍昱 彤
la source
3
Pour moi, passer à une version plus ancienne de openssltravaillé: brew switch openssl 1.0.2t je suis sous Mac OS Catalina 10.15.3. J'espère que ça aide.
viraj.kulkarni
0

Dans mon cas, j'ai réinstallé pyhone. Cela a résolu le problème.

brew reinstall python
user2446776
la source
-1

C'est le problème avec votre paramètre SSL par défaut. Vous devez télécharger le Python3 et ajouter le chemin d'accès à votre système. Si vous utilisez Pycharm, définissez l'interpréteur sur votre chemin python3. Ensuite, vous pouvez normalement utiliser le pip3 sans erreur.

Triton
la source
-1

Le problème vient probablement de la version de votre package openssl installé. C'était le cas pour moi et j'ai résolu ce problème en le mettant à niveau. Je suis sous Mac OS, en utilisant brew:

brew upgrade openssl

Si vous avez installé python avec brew, cela devrait directement résoudre le problème, car python dépend de openssl

Claudod
la source
-1

Vous essaieriez d'Anaconda Prompt.

Vous verrez (base), maintenant mettre à jour pip. Exemple:

(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

Cela prend plus de temps, mais installera ou mettra également à niveau les bibliothèques SSL qu'Anaconda utilise en interne. Continuez à aller ici

Gionthelawa
la source
Cette réponse suppose l'utilisation de conda sous Windows, et non de python vanille sous Linux comme l'indique l'OP
hrbdg