web-dev-qa-db-fra.com

pip3 s'installe dans l'environnement virtuel avec python3.6 échouant en raison du module SSL non disponible

(py36venv) vagrant @ pvagrant-dev-vm:/vagrant/venvs $ pip3 installer pep8

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

La collecte de pep8 n'a pas pu récupérer l'URL https://pypi.python.org/simple/pep8/ : Un problème est survenu lors de la confirmation du certificat SSL: Impossible de se connecter à l'URL HTTPS car le module SSL n'est pas disponible. - sauter

Impossible de trouver une version répondant à l'exigence pep8 (à partir des versions:) Aucune distribution correspondante trouvée pour pep8

Informations générales - Tentative de déplacement vers python 3.6.

Installé python3.6 en utilisant les commandes ci-dessous:

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz

tar -xvf Python-3.6.0.tgz

cd Python-3.6.0
./ configure --enable-optimizations
make -j8 Sudo make altinstall python3.6

Créé virtualenv par:

python3.6 -m venv py36venv

source py36venv/bin/activate

J'ai essayé d'installer pep8

(py36venv) pip3 installe pep8

pip est configuré avec les emplacements qui requièrent TLS/SSL, mais le module ssl de Python n'est pas disponible. Collecte de pep8

Impossible de récupérer l'URL https://pypi.python.org/simple/pep8/ : Un problème est survenu lors de la confirmation du certificat SSL: Impossible de se connecter à l'URL HTTPS car

Le module SSL n'est pas disponible. - skipping Impossible de trouver une version qui réponde à l'exigence pep8 (à partir des versions:) Aucune distribution correspondante trouvée pour pep8.

36
Py_minion

J'ai suivi les étapes ci-dessous pour l'installation de python3.6 dans Ubuntu 14.04 et l'installation de virtualenv pip fonctionne bien.

Installation de Python 3.6:

Sudo apt-get install python3-dev libffi-dev libssl-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz  
tar xvf Python-3.6.0.tgz
cd Python-3.6.0
./configure --enable-optimizations  
make -j8  
Sudo make altinstall
python3.6

Si vous voyez l'erreur suivante -

zipimport.ZipImportError: impossible de décompresser les données; zlib indisponible make: *** [altinstall] Erreur 1

essayer:

Sudo apt-get install zlib1g-dev

Validation:

Créez virtualenv dans python3.6:

python3.6 -m venv testenv
source testenv/bin/activate
pip install pep8

en utilisant pip:

(testenv) vagrant@pvagrant-dev-vm:~$ pip install pep8
*Collecting pep8
  Downloading pep8-1.7.0-py2.py3-none-any.whl (41kB)
    100% |████████████████████████████████| 51kB 4.1MB/s
Installing collected packages: pep8
Successfully installed pep8-1.7.0*

(testenv) vagrant@pvagrant-dev-vm:~$ pip list

pep8 (1.7.0) 
pip (9.0.1)
setuptools (28.8.0)
53
Py_minion

Je suis tombé sur le même problème lorsque j'ai essayé de créer un environnement virtuel utilisant python3.6.0. Voici ma solution pour Mac OS X 10.12.2 (le commentaire Py_minion était assez proche):

Installer

J'ai créé l'environnement en procédant comme suit: téléchargement de python3.6.0 en cours d'exécution

./configure --prefix=<some_path>`
make
make install
mkvirtualenv --python=<some_path/bin/python3.6> foo

Donc, fondamentalement, semblable à: https://stackoverflow.com/a/11301911/128609

Une indication si vous avez le même problème que moi serait une ligne similaire lorsque vous exécutez make

The necessary bits to build these optional modules were not found: _ssl

Solution

Installer openssl

brew install openssl
brew unlink openssl && brew link openssl --force

Changer de module/Setup ou Module/Setup.dist

Vous pouvez trouver ces fichiers dans le répertoire de la version Python téléchargée.

Commenter et, si nécessaire, modifier les lignes 209 à 211 (je devais changer la variable SSL en mon emplacement openssl).

SSL=/usr/local/opt/openssl <---- THIS DEPENDS ON YOUR INSTALLATION
_ssl _ssl.c \
    -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
    -L$(SSL)/lib -lssl -lcrypto

Etant donné que c’était l’emplacement d’openssl

Définir les variables d'environnement

export CFLAGS="-I$(brew --prefix openssl)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib"

faire et installer à nouveau

Fonctionnement

./configure --prefix=<some_path>`
make
make install
mkvirtualenv --python=<some_path/bin/python3.6> foo

a encore fait le tour pour moi

11
maves

En cours d'exécution make m'a rapporté dans la sortie Shell:

The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm              
_sqlite3              _ssl                  _tkinter           
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Ce qui a résolu le problème dans mon cas (Linux Mint 18.1, openssl déjà installé) était en train de modifier setup.py dans le dossier Python-3.6.0 en y ajoutant le chemin où l’installation openssl a placé le fichier ssl.h de mon système dans (/usr/include/openssl/ssl.h). Voici la section dans laquelle j'ai ajouté la ligne '/ usr/include':

    # Detect SSL support for the socket module (via _ssl)
    search_for_ssl_incs_in = [
                          '/usr/local/ssl/include/',
                          '/usr/contrib/ssl/include/',
                          '/usr/include/'
                         ]
    ssl_incs = find_file('openssl/ssl.h', inc_dirs,
                         search_for_ssl_incs_in
                         )
6
Claudio

J'ai rencontré la même erreur lors de la construction de Python 3.6.1 à partir de la source sous CentOS 7. Pour CentOS7, je devais d'abord:

Sudo yum install openssl-dev

Ensuite:

./configure --enable-optimizations
make altinstall

Maintenant pip3.6 fonctionne :-)

6
Dániel Sali

J'ai résolu ce problème sur Ubuntu-16.04.1. Vous devez d’abord installer les bibliothèques nécessaires. Pour installer un terminal ouvert (Ctrl+Alt+T), puis tapez;

 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

Après cela, allez dans le répertoire où votre fichier python est ensuite reconfiguré et réinstallé python3.6.

 cd /opt/Python3.6/
./configure
 make 
Sudo make install

NOTE
Si vous avez installé Python3.6 via ppa, réinstallez-le à nouveau;

Sudo apt-get install python3.6

Maintenant, vous devriez pouvoir utiliser pip3.6

5
ozcanyarimdunya

Un script complet peut être trouvé HERE

Installer les prérequis

Pour RHEL/CentOS

Sudo yum -y install gcc gcc-c++ zlib zlib-devel libffi-devel openssl-devel wget

Pour Ubuntu/Debian

Sudo apt-get -y install build-essential python-dev python-setuptools python-pip python-smbus libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev wget

Télécharger Python

Modifier pour la version de python que vous voulez

versions Python

cd /var/tmp Sudo wget https://www.python.org/ftp/python/3.x.x/Python-x.x.x.tgz Sudo tar xf Python-3.*.tgz cd Python-3*

Configurer/Créer/Installer

Sudo ./configure --enable-optimizations --enable-shared --prefix=/usr/local Sudo make && make altinstall

Nettoyer la bibliothèque partagée et ajouter au chemin

Supprimer la bibliothèque partagée de symboles de débogage peut accélérer l'exécution lors de l'exécution de scripts parallèles.

Sudo make && make altinstall Sudo strip /usr/local/lib/libpython3.7m.so.1.0 Sudo echo 'export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib' >> /etc/profile.d/python.sh Sudo echo 'export PATH=${PATH}:~/usr/local/bin/' >> /etc/profile.d/python.sh Sudo echo '/usr/local/lib' >> /etc/ld.so.conf Sudo ldconfig

Référence

0
JerodG