Cannot use pip (ubuntu) [pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. ]
$ sudo pip install numpy # or anything else
error:
The directory '/home/user/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. (tried sudo -H, the rest errors persist)
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
$ python -V
Python 3.7.3
$ pip -V
pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
$ whereis pip
pip: /usr/local/bin/pip2.7 /usr/local/bin/pip3.7 /usr/local/bin/pip /usr/local/bin/pip3.6
pip3.6 appeared after:
$ sudo su
$ update-alternatives --install /usr/bin/python python /usr/bin/python3 1
In anaconda environments, pip works fine.
Is deleting things related with python, at a safe extend - without breaking the system, and re-install stuff properly, a preferable solution? And how to do so?
I know that there are a lot of similar questions, but I've tried a lot of stuff (obviously, I messed something) and I haven't solve the problem.
Thanks!
1- Avoid to use sudo
when you don't need to.
2- Since you're using Python3, the appropriate way the install a package in Python3 is using pip3.
So the command will be as follows: pip3 install --user <package_name>
Where:
pip3
is for Python3.install
to install a package using pip3.--user
to save that downloaded package in the current user directory (so you'll not need more privileges).package_name
any Python package.
EDIT:
1. Install the necessary packages for Python and ssl: sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
Download and unzip "Python-3.7.0.tar.xz" from https://www.python.org/ftp/python/ into your home directory.
Open terminal in that directory and run:
./configure
Build and install:
sudo make && sudo make install
Install packages with:
pip3 install package_name