Comment installer pip pour Python 3.6 sur Ubuntu 16.10?

Je voudrais commencer par souligner que cette question peut sembler être un double, mais ce n’est pas le cas. Toutes les questions que j’ai vues ici concernaient pip pour Python 3 et je parlais de Python 3.6. Les étapes utilisées à l’époque ne fonctionnent pas pour Python 3.6.

  1. J’ai une image claire d’Ubuntu 16.10 du magasin officiel de docker .
  2. Exécutez apt-get update
  3. Exécutez apt-get install python3.6
  4. Exécutez apt-get install python3-pip
  5. Exécutez les pip3 install requests bs4
  6. Exécutez le python3.6 script.py

Got ModuleNotFoundError ci-dessous:

  Traceback (most recent call last): File "script.py", line 6, in  import requests ModuleNotFoundError: No module named 'requests' 

Python et pip que j’ai dans la machine:

 python3 python3.5 python3.5m python3.6 python3m python3-config python3.5-config python3.5m-config python3.6m python3m-config pip pip3 pip3.5 

Supposons que vous ayez un système exécutant Ubuntu 16.04, 16.10 ou 17.04, et que vous souhaitiez que Python 3.6 soit le Python par défaut.

Si vous utilisez Ubuntu 16.04 LTS, vous devrez utiliser un PPA:

 sudo add-apt-repository ppa:jonathonf/python-3.6 # (only for 16.04 LTS) 

Ensuite, exécutez ce qui suit (ceci fonctionne prêtes à l’emploi le 16.10 et 17.04):

 sudo apt update sudo apt install python3.6 sudo apt install python3.6-dev sudo apt install python3.6-venv wget https://bootstrap.pypa.io/get-pip.py sudo python3.6 get-pip.py sudo ln -s /usr/bin/python3.6 /usr/local/bin/python3 sudo ln -s /usr/local/bin/pip /usr/local/bin/pip3 # Do this only if you want python3 to be the default Python # instead of python2 (may be dangerous, esp. before 2020): # sudo ln -s /usr/bin/python3.6 /usr/local/bin/python 

Lorsque vous avez terminé tout ce qui précède, chacune des commandes shell suivantes doit indiquer Python 3.6.1 (ou une version plus récente de Python 3.6):

 python --version # (this will reflect your choice, see above) python3 --version $(head -1 `which pip` | tail -c +3) --version $(head -1 `which pip3` | tail -c +3) --version 

Au moins dans Ubuntu 16.10, le python3 par défaut est python3.5 . En tant que tel, tous les paquets python3-X seront installés pour python3.5 et non pour python3.6.

Vous pouvez le vérifier en vérifiant le shebang de pip3 :

 $ head -n1 $(which pip3) #!/usr/bin/python3 

Heureusement, le pip installé par le paquet python3-pip est installé dans le paquetage “partagé” /usr/lib/python3/dist-packages tel que python3.6 puisse aussi en profiter.

Vous pouvez installer des packages pour python3.6 en procédant comme suit:

 python3.6 -m pip install ... 

Par exemple:

 $ python3.6 -m pip install requests $ python3.6 -c 'import requests; print(requests.__file__)' /usr/local/lib/python3.6/dist-packages/requests/__init__.py 

Cette réponse suppose que python3.6 est déjà installé.

En ce qui concerne l’ installation de pip , l’utilisation de curl (au lieu de wget ) évite d’écrire le fichier sur le disque.

 curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6 

Après cela, on peut s’attendre à ce que pip , pip3 et pip3.6 pointent vers la même cible:

 $ pip -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) $ pip3 -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) $ pip3.6 -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) 

Bien sûr, vous pouvez également utiliser python3.6 -m pip .

 $ python3.6 -m pip -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) 

Ce site Web contient une solution beaucoup plus propre, il laisse intact pip et on peut facilement basculer entre 3.5 et 3.6, puis chaque fois que 3.7 est libéré.

http://ubuntuhandbook.org/index.php/2017/07/install-python-3-6-1-in-ubuntu-16-04-lts/

Un bref résumé:

 sudo apt-get install python python-pip python3 python3-pip sudo add-apt-repository ppa:jonathonf/python-3.6 sudo apt-get update sudo apt-get install python3.6 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2 

alors

 $ pip -V pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) $ pip3 -V pip 8.1.1 from /usr/local/lib/python3.5/dist-packages (python 3.5) 

Ensuite, sélectionnez python 3.6 run

 sudo update-alternatives --config python3 

et sélectionnez «2». alors

 $ pip3 -V pip 8.1.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) 

Pour mettre à jour pip, sélectionnez la version souhaitée et

 pip3 install --upgrade pip $ pip3 -V pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6) 

Testé sur Ubuntu 16.04.