web-dev-qa-db-fra.com

pip ou pip3 pour installer des packages pour Python 3?

J'ai un Macbook avec OS X El Captain. Je pense que Python 2.7 est préinstallé dessus. Cependant, j'ai installé Python 3.5 aussi. Quand j'ai commencé à utiliser Python 3, j'ai lu que si je voulais installer un paquet, je devrais taper:

pip3 install some_package

Quoi qu'il en soit, maintenant, quand j'utilise

pip install some_package

Je reçois some_package installé pour Python 3. Je veux dire que je peux l'importer et l'utiliser sans problèmes. De plus, quand je tape juste pip3 dans Terminal, j'ai reçu ce message concernant l'utilisation:

Usage:   
  pip <command> [options]

qui est le même message que je reçois quand je tape juste pip.

Cela signifie-t-il que dans les versions précédentes, les choses étaient différentes et que maintenant pip et pip3 peuvent être utilisés de manière interchangeable? Si tel est le cas, comment installer des packages pour Python 2 au lieu de Python 3?

77
Ammar Alyousfi

Votre pip est un lien symbolique vers le même chemin de fichier exécutable avec pip3. vous pouvez utiliser les commandes ci-dessous pour vérifier où se trouvent vos chemins pip et pip3:

$ ls -l `which pip`
$ ls -l `which pip3`

vous pouvez également utiliser les commandes ci-dessous pour en savoir plus:

$ pip show pip
$ pip3 show pip

Lorsque nous avons installé une version différente de python, nous pouvons créer de tels liens

  • définir le pip par défaut sur une version.
  • faire des liens différents pour différentes versions.

c'est la même situation à propos de python, python2, python3

Ci-dessous, pour qui s'intéresse à la façon dont cela se passe dans différents cas:

48
CSJ

Si vous avez python 2.x, puis installé python3, votre pip pointe sur pip3. vous pouvez le vérifier en tapant pip --version qui serait identique à pip3 --version.

Sur votre système, vous avez maintenant pip, pip2 et pip.

Si vous le souhaitez, vous pouvez modifier pip pour qu'il pointe vers pip2 au lieu de pip3.

19
apadana

Lorsque vous installez _python3_, _pip3_ est installé. Et si vous n'avez pas d'autre installation python (comme python2.7), un lien est créé, qui pointe pip sur _pip3_.

Donc pip EST UN LIEN VERS _pip3 s'il n'y a pas d'autre version de python installée (autre que python3). pip pointe généralement vers la première installation.

12
Ani Menon

C'est un sujet délicat. En fin de compte, si vous appelez pip, il invoquera soit pip2 ou pip3, en fonction de la configuration de votre système.

7
Max Uppenkamp

Je pense que pip, pip2 et pip3 ne sont pas des liens symboliques vers le même chemin de fichier exécutable. Notez ces commandes et résultats dans mon terminal linux:

mrz@mrz-pc ~ $ ls -l `which pip`
-rwxr-xr-x 1 root root 292 Nov 10  2016 /usr/bin/pip
mrz@mrz-pc ~ $ ls -l `which pip2`
-rwxr-xr-x 1 root root 283 Nov 10  2016 /usr/bin/pip2
mrz@mrz-pc ~ $ ls -l `which pip3`
-rwxr-xr-x 1 root root 293 Nov 10  2016 /usr/bin/pip3
mrz@mrz-pc ~ $ pip -V
pip 9.0.1 from /home/mrz/.local/lib/python2.7/site-packages (python 2.7)
mrz@mrz-pc ~ $ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
mrz@mrz-pc ~ $ pip3 -V
pip 9.0.1 from /home/mrz/.local/lib/python3.5/site-packages (python 3.5)

Comme vous le voyez, ils existent dans des chemins différents.

pip3 ne fonctionne toujours que dans l'environnement Python3, comme pip2 avec Python2. pip fonctionne dans n'importe quel environnement adapté au contexte. Par exemple, si vous êtes dans un environnement Python3, pip fonctionnera dans l'environnement Python3.

4
Mohammad Reza

Si vous avez installé Python 2.7, je pense que vous pouvez utiliser pip2 et pip2.7 pour installer des packages spécifiquement pour Python 2, comme

pip2 install some_pacakge

ou

pip2.7 install some_package

Et vous pouvez utiliser pip3 ou pip3.5 pour installer des packages spécifiquement pour Python 3.

3
mikeqfu

À titre d'illustration:

pip --version
  pip 19.0.3 from /usr/lib/python3.7/site-packages/pip (python 3.7)

pip3 --version
  pip 19.0.3 from /usr/lib/python3.7/site-packages/pip (python 3.7)

python --version
  Python 3.7.3

which python
  /usr/bin/python

ls -l '/usr/bin/python'
  lrwxrwxrwx 1 root root 7 Mar 26 14:43 /usr/bin/python -> python3

which python3
  /usr/bin/python3

ls -l /usr/bin/python3
  lrwxrwxrwx 1 root root 9 Mar 26 14:43 /usr/bin/python3 -> python3.7

ls -l /usr/bin/python3.7
  -rwxr-xr-x 2 root root 14120 Mar 26 14:43 /usr/bin/python3.7

Ainsi, mon dans mon système par défaut python (Python 3.7.3), pipestpip3.

2
Victoria Stuart

Étant donné que Python 3.6 virtualenv activé dans somepath/venv, les alias suivants ont résolu les divers problèmes sur un macOS Sierra où pip insistait pour pointer vers le 2.7 Python d'Apple.

alias pip='python somepath/venv/lib/python3.6/site-packages/pip/__main__.py'

Cela ne fonctionnait pas si bien quand je devais faire Sudo pip, car l'utilisateur root ne connaissait rien de mon alias ni de virtualenv. J'ai donc dû ajouter un alias supplémentaire pour gérer cela. C'est un hack, mais ça marche, et je sais ce que ça fait:

alias sudopip='Sudo somepath/venv/bin/python somepath/venv/lib/python3.6/site-packages/pip/__main__.py'

contexte:

pip3 n’existait pas pour démarrer ( commande introuvable ) avec et which pip renverrait / opt/local/Library/Frameworks /Python.framework/Versions/2.7/bin/pip, le Apple Python.

Python 3.6 a été installé via macports.

Après l'activation de la virtualenv 3.6 avec laquelle je voulais travailler, which python reviendrait chemin d'accès/venv/bin/python

D'une manière ou d'une autre, pip install ferait le bon choix et toucherait mon virtualenv, mais pip list ébranlerait les packages Python 2.7.

Pour Python, cela va bien au-delà de mes attentes en termes de convivialité pour les débutants.

0
JL Peyret

Sur mon exemple Windows - et je ne comprends pas tout à fait mon environnement -, utiliser pip3 pour installer le paquet kaggle-cli a fonctionné - contrairement à pip. Je travaillais dans un environnement conda et les environnements semblent être différents.

(fastai) C:\Users\redact\Downloads\fast.ai\deeplearning1\nbs> pip --version

pip 9.0.1 à partir de C:\ProgramData\Anaconda3\envs\fastai\lib\site-packages (python 3.6)

(fastai) C:\Users\redact\Downloads\fast.ai\deeplearning1\nbs> pip3 --version

pip 9.0.1 à partir de c:\users\redact\appdata\local\programmes\python\python36\lib\site-packages (python 3.6)

0
P M