web-dev-qa-db-fra.com

Impossible d'installer les packages d'installation dans Python 3.6 en raison d'une erreur ssl

Je travaille sur un serveur distant. Lorsque j'essaie d'installer quoi que ce soit avec pip dans mon environnement virtuel, un message d'erreur s'affiche:

(venv) [barta@bivoj program]$ pip install -r requirements.txt 
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting joblib==0.11 (from -r requirements.txt (line 1))
  Could not fetch URL https://pypi.python.org/simple/joblib/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping

Tout fonctionne bien avec Python 2.7. Puis-je résoudre ce problème moi-même (je n'ai pas d'accès root) ou dois-je contacter l'administrateur?

J'ai d'abord eu ce problème lorsque j'ai installé Python 3.6 dans mon dossier personnel. J'ai pensé que le problème venait peut-être de son dossier personnel. J'ai donc demandé une nouvelle installation de Python 3.6.

J'ai envisagé de changer le fichier setup.py et de le réinstaller chez moi, comme suggéré ici par Claudio:

pip3 est installé dans un environnement virtuel avec échec de python3.6 car le module ssl n'est pas disponible

mais je n'ai trouvé aucun dossier openssl. Il y a openssl dans/usr/bin, mais ce n'est pas un répertoire. J'ai cherché le fichier ssl.h, mais je ne l'ai trouvé nulle part.

6
Tom83B

On dirait que vous avez construit python à partir de la source sans la présence de libssl-dev.

Courir:

Sudo apt-get install libssl-dev
Sudo ./configure
Sudo make altinstall
8
Igonato

Testé sous Ubuntu 16.04/18.04

Dans Python-3.6.4/Modules/Setup, décommentez les lignes suivantes:

#   SSL=/usr/local/ssl
#   _ssl _ssl.c \
#       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#       -L$(SSL)/lib -lssl -lcrypto

Recompilez ensuite le paquet:

$ Sudo ./configure --enable-optimizations
$ Sudo make altinstall

Assurez-vous également que libssl-dev est installé (en tout cas, il s'agit du paquetage pour debian).

Cela fonctionne aussi pour Python-3.7.x.

1
inzem77

Voici comment j'ai fait: 

Sudo apt-get install libssl-dev
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar -xvf Python-3.6.5.tgz
cd Python-3.6.5/

./configure
Sudo make
Sudo make install
0
PhilKo

J'ai la même erreur mais en fait, j'ai créé python environment à l'aide de la dernière version de python2.7.13 et cette version python a été installée via source :

./configure --prefix /usr/bin/python2.7.13
make altinstall

Puis en créant virtualenv:

virtualenv --python=/usr/bin/python2.7.13/bin/python2.7 py2.7.13env

Après avoir passé beaucoup de temps, j'ai trouvé qu'il manquait une bibliothèque nommée libreadline6-dev. Alors installé le:

Sudo apt-get install libreadline6-dev

et répété les étapes compile et make install telles que mentionnées ci-dessus et a de nouveau créé l'env virtuel. Tout a bien fonctionné cette fois!

0
Saurav Kumar