web-dev-qa-db-fra.com

Ubuntu 16: pip install installe sur python 3 au lieu de 2

Je suis passé à Ubuntu 16.04. Je sais que cela est venu avec seulement python 3 installé, mais de toute façon python 2 est entré (je suppose en tant que dépendance). C'est bon parce que je l'ajouterais quand même. Les deux versions python sont présentes, comme on peut le voir avec:

$ python --version
Python 2.7.11+
$ python3 --version
Python 3.5.1+

Mon problème est que pip et pip3 ont tous deux la valeur par défaut de python3 (et il n'y a pas de pip2 non plus). Par exemple:

$ Sudo -H pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages
$ Sudo -H pip3 install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages

Pour ce que ça vaut, ils font référence à différents animaux:

$ which pip
/usr/local/bin/pip
$ which pip3
/usr/local/bin/pip3

Comment puis-je installer pip sur python2 et pip3 sur python3 comme dans Ubuntu 14.04?

3
Karsus

J'ai trouvé un moyen qui fonctionne et j'espère que je n'ai rien cassé dans le processus. Au début, j’ai essayé d’éditer la première ligne de/usr/local/bin/pip pour la changer de compilateur python 3 en python 2 mais l’erreur est qu’il n’existait aucun module nommé pip! ?

J'ai donc pensé que j'avais peut-être besoin de l'installer pour python 2. Donc, je suis allé et j'ai sauvegardé le script get-pip.py proposé. Il y a un avertissement sur le fait que cela pourrait casser des choses pour le système d'exploitation, mais comme xenial n'utilise que python3, j'ai décidé de le risquer. Et cela a fonctionné:

$ Sudo -H pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python2.7/dist-packages
$ Sudo -H pip3 install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages

Il y a toujours le problème potentiel que des choses se trouvent dans/usr/local dont parle muru, mais je ne sais pas grand chose à ce sujet et si les choses continuent de fonctionner, je ne me plaindrai pas. Les seuls moyens auxquels j’ai ajouté des paquets sont apt-get et certains fichiers .deb, à de rares exceptions près (comme chrome iirc).

0
Karsus

après avoir installé les deux

Sudo apt-get install python-pip
Sudo apt-get install python3-pip

sous Ubuntu 16.04, je peux simplement utiliser

pip2 install module
pip3 install module

pour installer le module souhaité pour Python2 ou Python3, respectivement.

J'espère que c'est utile et fonctionne pour vous aussi!

7
David

Résolvez le même problème en dissociant pip de python3 en le réinstallant comme suit:

Sudo python -m pip install -U --force-reinstall pip
1
Dwijay Bane