54 votes

Comment faire pour installer pip pour Python 3.6 sur Ubuntu 16.10?

Je voudrais commencer par souligner que cette question peut sembler comme un doublon, mais il ne l'est pas. Toutes les questions que j'ai vu ici ont été pour le programme pep pour Python 3 et je parle de Python 3.6. Les étapes utilisées à l'époque ne travaille pas pour Python 3.6.

  1. J'ai eu une claire Ubuntu 16.10 image de l' officiel docker magasin.
  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

Got ModuleNotFoundError ci-dessous:

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

Python et du pip, je l'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

102voto

Miles Erickson Points 1847

Supposons que vous disposez d'un système Ubuntu 16.04, 16.10, ou 17.04, et que vous voulez Python 3.6 à la valeur par défaut de Python.

Si vous utilisez Ubuntu 16.04 LTS, vous aurez besoin d'utiliser un PPA:

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

Ensuite, exécutez la commande suivante (cela fonctionne out-of-the-box sur 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 rempli tous les ci-dessus, chacun des éléments suivants commandes shell 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

36voto

Anthony Sottile Points 3629

Au moins dans ubuntu, 16.10, la valeur par défaut python3 est python3.5. Ainsi, l'ensemble de l' python3-X paquets seront installés pour python3.5 et pas pour python3.6.

Vous pouvez le vérifier l'arborescence de l' pip3:

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

Heureusement, le pip est installé par l' python3-pip paquet est installé dans le "partage" /usr/lib/python3/dist-packages tels que python3.6 peut également en profiter.

Vous pouvez installer des paquets pour python3.6 en faisant:

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

11voto

A-B-B Points 797

Cette réponse suppose que vous avez python3.6 installé. Pour python3.7, il suffit de remplacer 3.6 avec 3.7.

Installation

Quant à l'installation d' pip, à l'aide de 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

Si vous souhaitez éviter d'utiliser des sudo, reportez-vous à la documentation pour l'installation en local à l'aide de l' --user drapeau.

-H drapeau

L' -H drapeau est à l'évidence nécessaire avec l' sudo afin d'éviter ce type d'erreur lors de l'installation de pip pour une mise à jour de l'interpréteur python:

Le répertoire '/home/someuser/.cache/pip/http " ou de son répertoire parent n'est pas détenu par l'utilisateur actuel et le cache a été désactivé. Veuillez vérifier les autorisations et propriétaire de ce répertoire. Si l'exécution de le pip avec sudo, vous pouvez sudo -H drapeau.

Le répertoire '/home/someuser/.cache/pip " ou de son répertoire parent n'est pas détenu par la utilisateur actuel et la mise en cache des roues a été désactivé. de vérifier la les autorisations et propriétaire de ce répertoire. Si l'exécution du pip avec sudo vous pouvez sudo -H drapeau.

Vérification

Après cela, pip, pip3, et pip3.6 peuvent tous être prévu pour pointer vers le même objectif:

$ (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 aussi l'utiliser python3.6 -m pip .

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

3voto

genetica Points 39

Ce site web contient une beaucoup plus propre solution, il laisse pip intact, le-eh bien, et on peut facilement basculer entre 3.5 et 3.6 et 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 de sélectionner python 3.6 exécuter

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X