Reputation: 2109
I'm working on a remote server. When I try to install anything with pip within my virtual environment I get an error:
(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
Everything is working fine with python 2.7. Can I solve this problem by myself (I don't have root access) or do I need to contact the administrator?
First I had this problem when I installed python 3.6 in my home folder. I figured that the problem might be because it's in my home folder, so I asked for a clean install of python 3.6.
I considered changing the setup.py and install again in my home, as suggested here by Claudio:
pip3 installs inside virtual environment with python3.6 failing due to ssl module not available
but I didn't find any openssl folder. There is openssl in /usr/bin, but that is not a directory. I searched for the ssl.h file, but did not find it anywhere.
Upvotes: 10
Views: 23455
Reputation: 3594
If this is Windows, you need to install OpenSSL https://slproweb.com/products/Win32OpenSSL.html
Upvotes: 0
Reputation: 91
This is how I did:
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
Upvotes: 2
Reputation: 129
Tested in Ubuntu 16.04/18.04
In Python-3.6.4/Modules/Setup uncomment the following lines:
# SSL=/usr/local/ssl
# _ssl _ssl.c \
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
# -L$(SSL)/lib -lssl -lcrypto
Then recompile the package:
$ sudo ./configure --enable-optimizations
$ sudo make altinstall
Also make sure that libssl-dev
is installed (this is the package for debian, anyway).
This also works for Python-3.7.x.
Upvotes: 3
Reputation: 10787
Sounds like you've built python from source without libssl-dev
present.
Run:
sudo apt-get install libssl-dev
sudo ./configure
sudo make altinstall
Upvotes: 10
Reputation: 583
I got same error but actually I created python environment using a latest version of python2.7.13 and this python version was installed via source:
./configure --prefix /usr/bin/python2.7.13
make altinstall
Then creating virtualenv:
virtualenv --python=/usr/bin/python2.7.13/bin/python2.7 py2.7.13env
After spending a lot of time I found that one library named libreadline6-dev
was missing. So installed it:
sudo apt-get install libreadline6-dev
and repeated compile and make install steps as mentioned above and again created the virtual env. Everything worked fine this time!
Upvotes: 0