web-dev-qa-db-fra.com

Comment installer pip pour Python 3.6 sur Ubuntu 16.10?

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

  1. J'ai une image claire 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 pip3 install requests bs4
  6. Exécutez python3.6 script.py

Avez ModuleNotFoundError ci-dessous:

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

Python et pips 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
35
JChris

J'ai une réponse sur stackoverflow.

Source: https://stackoverflow.com/a/44254088/1812319

Supposons que vous avez un système sous Ubuntu 16.04, 16.10 ou 17.04 et que vous voulez que Python 3.6 soit le Python par défaut.

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

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

Ensuite, exécutez ce qui suit (cela fonctionne tel quel les versions 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é toutes ces opérations, chacune des commandes suivantes du shell devrait 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
13
JChris

Cette réponse suppose que vous avez installé python3.6. Pour python3.7, remplacez simplement 3.6 par 3.7.

Installation

En ce qui concerne installer pipname __ , l'utilisation de curl(au lieu de wgetname__) évite d'écrire le fichier sur le disque.

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

Si vous souhaitez éviter d'utiliser Sudoname__, reportez-vous à la documentation associée pour installer pipen utilisant l'indicateur --user.

-H drapeau

Le drapeau -H est évidemment nécessaire avec Sudoafin d'éviter des erreurs telles que les suivantes lors de l'installation de pip pour un interpréteur python mis à jour:

Le répertoire '/home/someuser/.cache/pip/http' ou son répertoire parent n'appartient pas à l'utilisateur actuel et le cache a été désactivé. Veuillez vérifier les autorisations et le propriétaire de ce répertoire. Si vous exécutez pip avec Sudo, vous voudrez peut-être le drapeau -H de Sudo.

Le répertoire '/home/someuser/.cache/pip' ou son répertoire parent n'appartient pas à l'utilisateur actuel et la mise en cache des roues a été désactivée. vérifiez les autorisations et le propriétaire de ce répertoire. Si vous exécutez pip avec Sudo, vous voudrez peut-être le drapeau -H de Sudo.

Vérification

Ensuite, vous pouvez vous attendre à pipname__, pip3 et pip3.6 à la même cible:

$ (pip -V && pip3 -V && pip3.6 -V) | uniq
pip 18.0 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 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
35
A-B-B