web-dev-qa-db-fra.com

Impossible d'utiliser pip (ubuntu) [pip est configuré avec des emplacements qui nécessitent TLS / SSL, cependant le module ssl dans Python n'est pas disponible.]

$ Sudo pip install numpy    # or anything else

erreur:

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 est apparu après:

$ Sudo su
$ update-alternatives --install /usr/bin/python python /usr/bin/python3 1

Dans les environnements anaconda, pip fonctionne bien.

La suppression de choses liées à python, à une extension sûre - sans casser le système et réinstaller correctement les choses, est-elle une solution préférable? Et comment faire?

Je sais qu'il y a beaucoup de questions similaires, mais j'ai essayé beaucoup de choses (évidemment, j'ai foiré quelque chose) et je n'ai pas résolu le problème.

Merci!

6
Thanasis Mattas

1- Évitez d'utiliser Sudo lorsque vous n'en avez pas besoin.
2- Puisque vous utilisez Python3, la manière appropriée d'installer un package en Python3 utilise pip3.
La commande sera donc la suivante: pip3 install --user <package_name> Où:

  • pip3 est pour Python3.

  • install pour installer un package à l'aide de pip3.

  • --user pour enregistrer ce package téléchargé dans le répertoire utilisateur actuel (vous n'aurez donc pas besoin de plus de privilèges).

  • package_name any Python.

MODIFIER:
1. Installez les packages nécessaires pour Python et ssl: Sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

  1. Téléchargez et décompressez "Python-3.7.0.tar.xz" de https://www.python.org/ftp/python/ dans votre répertoire personnel.

  2. Ouvrez le terminal dans ce répertoire et exécutez: ./configure

  3. Construisez et installez: Sudo make && Sudo make install

  4. Installez les packages avec: pip3 install package_name

6
singrium