J'ai installé Python 3.4 et Python 3.6 sur mon ordinateur local, mais je ne parviens pas à installer les packages avec pip3
.
Lorsque j'exécute pip3 install <package>
, le message d'erreur lié à SSL suivant s'affiche:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting <package>
Could not fetch URL https://pypi.python.org/simple/<package>/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
Could not find a version that satisfies the requirement <package> (from versions: )
No matching distribution found for <package>
Comment puis-je réparer mon installation Python3.x afin de pouvoir installer des packages avec pip install <package>
?
Guide étape par étape pour installer Python 3.6 et pip3 sous Ubuntu
Installez les packages nécessaires pour Python et ssl: $ Sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
Téléchargez et décompressez "Python-3.6.8.tar.xz" à partir de https://www.python.org/ftp/python/ dans votre répertoire personnel.
Ouvrez le terminal dans ce répertoire et exécutez: $ ./configure
Construire et installer: $ Sudo make && Sudo make install
Installez les paquets avec: $ pip3 install package_name
Si vous êtes sur Red Hat/CentOS:
# To allow for building python ssl libs
yum install openssl-devel
# Download the source of *any* python version
cd /usr/src
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar xf Python-3.6.2.tar.xz
cd Python-3.6.2
# Configure the build w/ your installed libraries
./configure
# Install into /usr/local/bin/python3.6, don't overwrite global python bin
make altinstall
Si vous utilisez Windows et utilisez anaconda , cela a fonctionné pour moi:
J'ai essayé beaucoup d'autres solutions qui ne fonctionnaient pas (environnement PATH, changements de variables ...)
Le problème peut être causé par des DLL du dossier Windows\System32 (par exemple, libcrypto-1_1-x64.dll ou libssl-1_1-x64.dll ou d'autres) placées là par d'autres logiciels.
Le correctif consistait à installer openSSL à partir de https://slproweb.com/products/Win32OpenSSL.html , qui remplace les dll par des versions plus récentes.
D'accord avec la réponse de mastaBlasta. Travaillé pour moi J'ai rencontré le même problème que la description du sujet.
Environnement: MacOS Sierra. Et j'utilise Homebrew.
Ma solution:
brew uninstall openssl, brew install openssl
;Selon les indications données par Homebrew, procédez comme suit:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
Le problème probablement causé par la bibliothèque manquante.
Avant d'installer python 3.6, assurez-vous d'installer toutes les bibliothèques requises pour Python.
$ Sudo apt-get install build-essential checkinstall
$ Sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
Plus d'informations dans Comment installer Python 3.6.0 sur Ubuntu & LinuxMint
Dans Ubuntu, cela peut aider:
cd Python-3.6.2
./configure --with-ssl
make
Sudo make install
J'ai rencontré le même problème sur Windows 10. Mon problème très spécifique est dû à mon installation d'Anaconda. J'ai installé Anaconda et sous le chemin Path/to/Anaconda3/
, il y a le python.exe
. Ainsi, je n'ai pas du tout installé python car Anaconda inclut du python. Lors de l'utilisation de pip pour installer des packages, j'ai trouvé le même rapport d'erreur, pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
.
La solution était la suivante:
1) vous pouvez télécharger python à nouveau sur le site officiel site web ;
2) Naviguez jusqu'au répertoire où se trouve "Python 3.7 (64-bit).lnk"
3) import ssl
et exit()
4) tapez cmd, "Python 3.7 (64-bit).lnk" -m pip install tensorflow
par exemple.
Ici, vous êtes tous ensemble.
Si vous utilisez Windows et utilisez Anaconda , vous pouvez essayer d'exécuter la commande "pip install ..." dans Anaconda Prompt au lieu de cmd.exe, en tant qu'utilisateur willliu1995. suggère ici . C'était la solution la plus rapide pour moi, qui ne nécessite pas l'installation de composants supplémentaires.
Si vous êtes sur OSX et avez compilé python à partir du source:
Installez openssl en utilisant brew brew install openssl
Assurez-vous de suivre les instructions données par votre café concernant le réglage de votre CPPFLAGS
et LDFLAGS
. Dans mon cas, j’utilise la formule de brassage [email protected]
et j’ai besoin de ces 3 paramètres pour que le processus de construction python se connecte correctement à ma bibliothèque SSL:
export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"
En supposant que la bibliothèque est installée à cet emplacement.
J'ai essayé BEAUCOUP de moyens de résoudre ce problème et aucun n'a été résolu. Je suis actuellement sur Windows 10.
La seule chose qui a fonctionné était:
Ensuite, j'ai téléchargé toutes les librairies dont j'avais besoin avec PIP ... et j'ai travaillé!
Je ne sais pas pourquoi, ou si le problème était lié à Anaconda.
J'avais le même problème et j'ai pu résoudre le problème en procédant comme suit:
Sudo yum install -y libffi-devel
Sudo yum install openssl-devel
cd /usr/src
Sudo wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
Sudo tar xf Python-3.7.1.tar.xz
cd Python-3.7.1
Sudo ./configure --enable-optimizations
# Install into /usr/local/bin/python3.7, don't overwrite global python bin
Sudo make altinstall
selon les permanentes, vous n’avez peut-être pas besoin de Sudo.
Results:
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1
devrait maintenant pouvoir courir
python3.7 -V
et
pip3.7 -V
Lors de l'installation des packages:
pip3.7 install pandas
ou selon les permanentes, vous pouvez aussi ajouter le drapeau --user comme ceci:
pip3.7 install pandas --user
Le module ssl
est un wrapper TLS/SSL permettant d’accéder au socket Operation Sytem (OS) ( Lib/ssl.py ). Ainsi, lorsque le module ssl
n'est pas disponible, il est probable que les bibliothèques OS OpenSSL ne soient pas installées ou que ces bibliothèques ne soient pas trouvées lors de l'installation de Python. Supposons qu'il s'agit d'un cas ultérieur (alias: OpenSSL est déjà installé, mais ils ne sont pas correctement liés lors de l'installation de Python).
Je vais aussi supposer que vous installez à partir de la source. Si vous effectuez l'installation à partir d'un fichier binaire (fichier Window .exe) ou d'un package (Mac .dmg ou Ubuntu apt), vous ne pouvez pas faire grand chose avec le processus d'installation.
Lors de la configuration de votre installation python, vous devez spécifier où le système d'exploitation OpenSSL sera utilisé pour la liaison:
# python 3.8 beta
./configure --with-openssl="your_OpenSSL root"
Alors, où trouverez-vous votre répertoire OpenSSL installé?
# ubuntu
locate ssl.h | grep '/openssl/ssl.h'
/home/user/.linuxbrew/Cellar/openssl/1.0.2r/include/openssl/ssl.h
/home/user/envs/py37/include/openssl/ssl.h
/home/user/miniconda3/envs/py38b3/include/openssl/ssl.h
/home/user/miniconda3/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.0.2s-h7b6447c_0/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1b-h7b6447c_1/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1c-h7b6447c_1/include/openssl/ssl.h
/usr/include/openssl/ssl.h
Votre système peut être différent du mien, mais comme vous le voyez ici, j'ai de nombreuses bibliothèques OpenSL installées. Au moment d'écrire ces lignes, python 3.8 attend openssl 1.0.2 ou 1.1:
Python nécessite une libssl compatible OpenSSL 1.0.2 ou 1.1 avec X509_VERIFY_PARAM_set1_Host ().
Donc, vous devez vérifier laquelle de ces bibliothèques installées vous pouvez utiliser pour lier, par exemple
/usr/bin/openssl version
OpenSSL 1.0.2g 1 Mar 2016
./configure --with-openssl="/usr"
make && make install
Vous devrez peut-être en essayer quelques-unes ou en installer une nouvelle pour trouver la bibliothèque qui fonctionnerait pour votre Python et votre système d'exploitation.
J'avais le même problème depuis deux jours et je ne l'ai résolu que maintenant.
J'avais essayé d'utiliser l'option --trust-Host
avec le DigiCert_High_Assurance_EV_Root_CA.pem
ne fonctionnait pas, je ne pouvais pas installer le module ssl (cela indique qu'il ne peut pas être installé pour python versions supérieures à 2.6) , régler la variable $PIP_CERT
ne l’a pas résolu non plus et j’ai installé libssl1.0.2
et libssl1.0.0
. Il convient également de mentionner que je n’avais pas de fichier ~/.pip/pip.conf
, et que le créer ne résolvait pas non plus le bogue.
Ce qui a finalement résolu le problème, c’est d’installer à nouveau python3.6 avec make
. Téléchargez le fichier Python-3.6.0.tgz à partir du site Web, exécutez configure
puis make
, make test
et make install
. J'espère que ça marche pour toi.
J'ai eu le même problème en essayant d'installer python3.7 sur une machine ubuntu14.04. Le problème était que j'avais quelques dossiers personnalisés dans mon PKG_CONFIG_PATH et dans mon LD_LIBRARY_PATH, ce qui empêchait le processus de construction python de trouver les bibliothèques openssl du système.
alors essayez de les effacer et de voir ce qui se passe:
export PKG_CONFIG_PATH=""
export LD_LIBRARY_PATH=""