Comment installer pip pour Python 3.6 sur Ubuntu 16.10?

41

J'aimerais commencer par souligner que cette question peut sembler être une duplication, 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 eu une image claire Ubuntu 16.10 du magasin de docker officiel .
  2. Courir apt-get update
  3. Courir apt-get install python3.6
  4. Courir apt-get install python3-pip
  5. Courir pip3 install requests bs4
  6. Courir python3.6 script.py

Got ModuleNotFoundErrorci-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
JChris
la source
La question a été
transmise

Réponses:

45

Cette réponse suppose que vous avez python3.6installé. Pour python3.7, remplacez 3.6par 3.7. Pour python3.8, remplacez 3.6par 3.8, mais cela peut aussi nécessiter d’abord le python3.8-distutilspaquet.

Installation avec sudo

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

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

L’ -Hindicateur est évidemment nécessaire sudopour éviter les erreurs 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 pouvez utiliser 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 pouvez utiliser le drapeau -H de sudo.

Installation sans sudo

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

Cela peut parfois donner un avertissement tel que:

AVERTISSEMENT: la roue de script est installée dans '/home/ubuntu/.local/bin' qui ne se trouve pas sur PATH. Pensez à ajouter ce répertoire à PATH ou, si vous préférez supprimer cet avertissement, utilisez --no-warn-script-location.

Vérification

Après cela, pip, pip3et pip3.6peuvent tous s'attendre à ce moment à 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également.

$ python3.6 -m pip -V
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
Acumenus
la source
5
Le script semble supposer que python3.6les outils de configuration / installation sont opérationnels. Pour cette raison, cela n'a pas fonctionné pour moi. J'ai fini par utilisercurl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pip
FirefoxMetzger
J'ai installé python3.6et à python3.6-devpartir ppa:jonathonf/python-3.6d'un Ubuntu 14.04. Je ne sais pas si j'ai tout simplement oublié setuptools ou s'il est tombé en panne, mais cela ne fonctionnait pas à l'époque.
FirefoxMetzger
Cela ne falsifie en rien votre réponse =) C'est juste un ajout au cas où quelqu'un rencontrerait le même problème (espérons-le peu commun).
FirefoxMetzger
@ABB Si je veux pip -Vêtre python 2.7et pip3 -V && pip3.6 -Vêtre, python 3.6comment puis-je faire?
Benyamin Jafari
1
Vous pouvez également utiliser wget -O -le résultat en streaming sur stdout:wget -O - https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
ingomueller.net
16

J'ai une réponse sur stackoverflow.

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

Supposons que vous avez un système exécutant 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é tout ce qui précède, chacune des commandes d’environnement suivantes 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
JChris
la source
1
"Aucun module nommé pip"
tortues sont mignonnes
Essayez de faire un sudo apt get updateet sudo apt get upgradeavant d'exécuter la commande.
JChris
Merci pour l'aide; très appréciée. Lors du dépannage, j'ai mis mon système dans un état dans lequel je suis en boucle de connexion et il semble que le correctif le plus simple sera un reformatage / une réinstallation.
tortues sont mignonnes