programa - pip3 se instala dentro de un entorno virtual con un error de python3.6 debido a que el módulo ssl no está disponible
virtualenv no se reconoce como un comando interno o externo programa o archivo por lotes ejecutable (6)
(py36venv) vagrant @ pvagrant-dev-vm: / vagrant / venvs $ pip3 install pep8
pip está configurado con ubicaciones que requieren TLS / SSL, sin embargo, el módulo ssl en Python no está disponible.
Recopilar pep8 no se pudo recuperar la URL https://pypi.python.org/simple/pep8/ : Hubo un problema al confirmar el certificado SSL: no se puede conectar a la URL HTTPS porque el módulo SSL no está disponible. - omitiendo
No se pudo encontrar una versión que satisfaga el requisito pep8 (de las versiones:) No se encontró una distribución coincidente para pep8
Información de fondo - Intentando pasar a Python 3.6.
Instaló python3.6 usando los siguientes comandos:
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-optimizaciones
make -j8 sudo make altinstall python3.6
Virtualenv creado por:
python3.6 -m venv py36venv
fuente py36venv / bin / activar
Intenté instalar pep8
(py36venv) pip3 instalar pep8
pip está configurado con ubicaciones que requieren TLS / SSL, sin embargo, el módulo ssl en Python no está disponible. Recolectando pep8
No se pudo recuperar la URL https://pypi.python.org/simple/pep8/ : Hubo un problema al confirmar el certificado SSL: no se puede conectar a la URL HTTPS porque
El módulo SSL no está disponible. - omitiendo No se pudo encontrar una versión que satisfaga el requisito pep8 (de las versiones:) No se encontró una distribución coincidente para pep8
Un guión completo se puede encontrar HERE
Instalar requisitos previos
Para RHEL / CentOS
sudo yum -y install gcc gcc-c++ zlib zlib-devel libffi-devel openssl-devel wget
Para 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
Descargar Python
Modifique para la versión de Python que desee
cd /var/tmp sudo wget https://www.python.org/ftp/python/3.xx/Python-xxxtgz sudo tar xf Python-3.*.tgz cd Python-3*
Configurar / Hacer / Instalar
sudo ./configure --enable-optimizations --enable-shared --prefix=/usr/local sudo make && make altinstall
Limpiar biblioteca compartida y agregar a ruta
Eliminar los símbolos de depuración de la biblioteca compartida puede acelerar la ejecución al ejecutar scripts paralelos.
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
Referencia
- HERE
- Desbordamiento de pila
- Desbordamiento de pila
- Daniel Erikson
- Unix StackExchange
- TLDP
Ejecutar make me informó en la salida del 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.
Lo que resolvió el problema en mi caso (Linux Mint 18.1, openssl ya instalado) fue editar el setup.py en la carpeta Python-3.6.0 agregando allí la ruta donde la instalación de openssl puso el archivo ssl.h en mi sistema ( /usr/include/openssl/ssl.h). Aquí la sección en la que he agregado la línea ''/ 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
)
He resuelto este problema en Ubuntu-16.04.1. Primero necesitas instalar las bibliotecas necesarias. Para instalar abra la Terminal ( Ctrl + Alt + T ), luego escriba;
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
Después de eso, vaya al directorio donde se encuentra su archivo de Python y luego reconfigure y reinstale python3.6.
cd /opt/Python3.6/
./configure
make
sudo make install
NOTA
Si instaló Python3.6 a través de ppa, vuelva a instalarlo nuevamente;
sudo apt-get install python3.6
Ahora deberías poder usar pip3.6
Me encontré con el mismo error al construir Python 3.6.1 desde la fuente en CentOS 7. Para CentOS7, primero tuve que:
sudo yum install openssl-dev
Entonces:
./configure --enable-optimizations
make altinstall
Ahora
pip3.6
funciona :-)
Me topé con el mismo problema cuando intenté crear un entorno virtual utilizando python3.6.0. Aquí está mi solución para Mac OS X 10.12.2 (el comentario de Py_minion estaba bastante cerca):
Preparar
Creé el entorno siguiendo estos pasos: descargando Python3.6.0 corriendo
./configure --prefix=<some_path>`
make
make install
mkvirtualenv --python=<some_path/bin/python3.6> foo
Básicamente similar a: https://.com/a/11301911/1286093
Una indicación si tiene el mismo problema que tuve sería una línea similar al ejecutar
make
The necessary bits to build these optional modules were not found: _ssl
Solución
Instalar openssl
brew install openssl
brew unlink openssl && brew link openssl --force
Cambiar Módulo / Configuración o Módulo / Configuración.dist
Puede encontrar esos archivos en el directorio de la versión descargada de Python.
Comente y, si es necesario, cambie las líneas 209 - 211 (tuve que cambiar la variable SSL a mi ubicación de 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
Dado que esta era la ubicación de openssl
Establecer variables de entorno
export CFLAGS="-I$(brew --prefix openssl)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib"
hacer e instalar de nuevo
Corriendo
./configure --prefix=<some_path>`
make
make install
mkvirtualenv --python=<some_path/bin/python3.6> foo
de nuevo hizo el truco para mí
Seguí los pasos a continuación para la instalación de python3.6 en ubuntu 14.04 y las instalaciones virtualenv pip funcionan bien.
Instalación 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 ve el siguiente error:
zipimport.ZipImportError: no puede descomprimir datos; zlib no disponible make: *** [altinstall] Error 1
tratar:
sudo apt-get install zlib1g-dev
Validación:
Crea virtualenv en python3.6:
python3.6 -m venv testenv
source testenv/bin/activate
pip install pep8
usando 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)