pip3 s'installe dans un environnement virtuel avec python3.6 échec dû au module ssl Non disponible

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

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

collectionner pep8 ne pouvait pas aller chercher URL https://pypi.python.org/simple/pep8 / : il y avait un problème de confirmation le certificat ssl: impossible de se connecter URL HTTPS parce que le module SSL n'est pas disponible. - sautant

N'a pas pu trouver une version qui satisfasse à l'exigence pep8 (de versions : ) aucune distribution trouvée pour pep8

informations générales - Essayer de passer à python 3.6.

installé python3.6 en utilisant les commandes suivantes:

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

marque-j8 sudo faire altinstall python3.6

créé virtualenv par:

python3.6-m venv py36venv

source py36venv / bin /activate

a essayé d'installer pep8

(py36venv) pip3 installer pep8

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

ne pouvait pas aller chercher L'URL https://pypi.python.org/simple/pep8 / : il y avait un problème confirmation du certificat ssl: impossible connectez-vous à L'URL HTTPS car le

Le module SSL

n'est pas disponible. - skipping N'a pas pu trouver de version qui satisfait à l'exigence pep8 (à partir des versions:) aucune correspondance distribution trouvée pour pep8

31
demandé sur Py_minion 2017-01-05 19:00:54

6 réponses

j'ai suivi les étapes ci-dessous pour python3.6 installation dans 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 vous voyez l'erreur suivante --

zipimport.ZipImportError: impossible de décompresser les données; zlib non disponible marque: * * * [altinstall] erreur 1

, essayez:

sudo apt-get install zlib1g-dev

de Validation:

crée virtualenv en python3.6:

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

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)
48
répondu Py_minion 2017-03-16 04:12:31

je suis tombé sur la même question lorsque 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):

Setup

j'ai créé l'environnement par les étapes suivantes: téléchargement de python3.6.0 0 course à pied

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

donc essentiellement similaire à: https://stackoverflow.com/a/11301911/1286093

une indication si vous avez le même problème que moi serait une ligne similaire lors de l'exécution 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 Module/Setup ou Module/Setup.dist

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

Commentaire et, si nécessaire, modifiez les lignes 209 - 211 (j'ai dû changer la SSL variable à 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

étant donné qu'il s'agissait de 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

Running

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

encore une fois fait le tour pour moi

8
répondu maves 2018-03-23 17:02:13

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

sudo yum install openssl-dev

puis:

./configure --enable-optimizations
make altinstall

Maintenant pip3.6 : -)

6
répondu Dániel Sali 2017-06-12 07:23:59

lancer 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é) éditait le setup.py dans le dossier Python-3.6.0 ajoutant là le chemin vers l'endroit où l'installation openssl a mis 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
                         )
4
répondu Claudio 2017-03-15 00:13:01

j'ai résolu ce problème sur Ubuntu-16.04.1. Vous devez d'abord installer les bibliothèques nécessaires. Pour installer le 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, puis réinstaller à nouveau;

sudo apt-get install python3.6

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

3
répondu ozcanyarimdunya 2018-03-30 07:37:57

un script complet peut être trouvé ici

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

Python De Téléchargement

Modifier pour la version de python vous voulez

Les Versions De 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 /Faire / Installer

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

nettoyer la bibliothèque partagée & ajouter au chemin

démonter 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
répondu Jerod 2018-02-06 18:13:03