44 votes

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

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

pip est configuré avec des endroits qui nécessitent de TLS/SSL, cependant la ssl du module en Python n'est pas disponible.

La collecte de pep8 ne Pouvait pas récupérer l'URL https://pypi.python.org/simple/pep8/: Il y a un problème confirmant le certificat ssl: ne Peut pas se connecter à l'URL HTTPS parce que le module SSL n'est pas disponible. - sauter

Impossible de trouver une version qui satisfait à l'exigence pep8 (à partir de versions: ) Pas de correspondance distribution trouvé pour pep8

Informations d'arrière-plan - pour Essayer de passer à 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-optimisations
faire -j8 sudo faire altinstall python3.6

Créé virtualenv par:

python3.6 -m venv py36venv

source py36venv/bin/activate

Essayé d'installer pep8

(py36venv) pip3 installer pep8

pip est configuré avec des endroits qui nécessitent de TLS/SSL, cependant, le ssl module en Python n'est pas disponible. La collecte de pep8

Ne pouvait pas récupérer l'URL https://pypi.python.org/simple/pep8/: Il y a un problème confirmant le certificat ssl: ne Peut pas se connecter à l'URL HTTPS parce que le

SSL module n'est pas disponible. - sauter impossible de trouver une version qui satisfait à l'exigence pep8 (à partir des versions: ) Pas de correspondance distribution trouvé pour pep8

58voto

Py_minion Points 1128

J'ai suivi les étapes ci-dessous pour python3.6 installation sur ubuntu 14.04 et virtualenv pip installe fonctionne très bien.

Python 3.6 Installation:

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 le fait de voir l'erreur suivante --

zipimport.ZipImportError: ne peut pas décompresser des données; zlib pas disponible make: *** [altinstall] Erreur 1

essayez:

sudo apt-get install zlib1g-dev

Validation:

Créer virtualenv dans python3.6:

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

utilisation de 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)

14voto

maves Points 373

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

Le programme d'installation

J'ai créé l'environnement par les étapes suivantes: le téléchargement de python3.6.0 l'exécution de

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

Donc, fondamentalement similaires à: https://stackoverflow.com/a/11301911/1286093

Une indication si vous avez le même problème que j'ai eu serait une ligne similaire lors de l'exécution d' make

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

Solution

L'installation d'openssl

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

Le Module de modification/d'Installation ou de Module/de l'Installation.dist

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

Commentaires et, si nécessaire, modifiez les lignes 209 - 211 (j'ai dû changer le SSL variable à mon openssl emplacement).

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

Étant donné que c'était l'emplacement d'openssl

Définir des variables d'environnement

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

faire et installer à nouveau

L'exécution de

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

de nouveau a fait le tour pour moi

8voto

Claudio Points 2519

L'exécution de make m'a été rapporté dans la coquille de sortie:

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é) a été l'édition du setup.py dans le Python-3.6.0 dossier en ajoutant qu'il le chemin où l'installation d'openssl mettre le ssl.h fichier sur mon système ( /usr/include/openssl/ssl.h ). Ici, 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
                         )

7voto

ozcanyarimdunya Points 363

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

 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, aller dans le répertoire où se trouve votre fichier python est ensuite reconfigurer et réinstaller python3.6 .

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

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

sudo apt-get install python3.6

Maintenant, vous devriez être en mesure d'utiliser pip3.6

6voto

Dániel Sali Points 69

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

 sudo yum install openssl-dev
 

Ensuite:

 ./configure --enable-optimizations
make altinstall
 

Maintenant pip3.6 fonctionne :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X