Comment utiliser pip avec Python 3.x avec Python 2.x


196

J'ai installé Python 3.x (en plus de Python 2.x sur Ubuntu) et j'ai lentement commencé à coupler les modules que j'utilise dans Python 2.x.

Je me demande donc quelle approche dois-je adopter pour me faciliter la vie en utilisant pip pour Python 2.x et Python 3.x?


2
Personnellement, j'éviterais les installations globales de packages et j'utiliserais virtualenv. Ensuite, vous utilisez pip depuis l'intérieur de votre environnement virtuel pour chaque projet, et vous utilisez toujours le bon.
jpmc26

Réponses:


183

L'approche que vous devez adopter est d'installer pippour Python 3.2.

Vous procédez de la manière suivante:

$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python3.2 get-pip.py

Ensuite, vous pouvez installer des éléments pour Python 3.2 avec pip-3.2et installer des éléments pour Python 2-7 avec pip-2.7. La pipcommande finira par pointer vers l'un d'entre eux, mais je ne sais pas lequel, vous devrez donc vérifier.


9
C'était facile, merci. sudo python3.2 get-pip.pyles installations pipet les pip-3.2scripts dans /usr/local/binet utilisent logiquement Python 3. les sudo python get-pip.pyinstallations pipet pip-2.7ici, donc dans ce cas, piputilise Python 2.7. J'ai créé un lien vers pip-3.2as pip3et testé: parfait! :)
thêta

6
Sur Fedora, c'est pip3.3, c'est-à-dire sans le tiret entre pip et la version. Vérifiez /usr/binpour voir quelles versions de pip vous avez là.
Shailen

5
[x] Ubuntu utilise également [ pip2 | pip2.7 | pip3 | pip3.4 ]. S'agit-il d'un changement pipou d' un changement entre les différents systèmes?
Jon Surrell

Après l'exécution, j'ai euYou're using an outdated location for the get-pip.py script, please use the one available from https://bootstrap.pypa.io/get-pip.py
Kevin Brotcke

Faites donc cela alors. :-)
Lennart Regebro

53

Vous pouvez également utiliser apt-get:

apt-get install python3-pip

D'après mon expérience, cela fonctionne aussi très bien, et vous obtenez tous les avantages d'apt-get.


2
Le 12.04, je ne peux pas faire ça.
dranxo

15
J'ai utilisé cela avec succès (c'est-à-dire sudo apt-get install python3-pip) et j'ai ensuite pu installer des packages python3 en utilisant "sudo python3 -m pip install package".
Tom Slee

2
À ce jour, je pense qu'apt-get vous propose la version 1.5.6 obsolète; si vous ne voulez pas une AssertionErrror pendant pip freeze > requirements(ou d'autres bogues potentiels), installez à partir des sources pour la dernière version et évitez les maux de tête.
Yibo Yang

doit être root pour installerpython3-pip
Florent

Malgré l'installation, l' piputilisation python3.7 pipest toujours utilisée par défaut avec Python 2.7 sur Ubuntu 14.04 :( J'ai réussi à mettre à jour pip vers la dernière version, c.-à-d. 19.3.1, mais sa valeur par défaut est toujours à python2.7. Comment l'utiliser avec python 3.7 ?
Curious Developer

48

Tout d'abord, installez Python 3 pip en utilisant:

sudo apt-get install python3-pip

Ensuite, pour utiliser, Python 3 piputilisez:

pip3 install <module-name>

Pour Python 2 piputilisation:

pip install <module-name>

4
Il n'y a pas de pip Python 2, cela dépend du système d'exploitation que vous utilisez. Par exemple, sur les pip --versionétats Arch Linux qui s'exécutent sur python 3.6 par défaut.
Daniel Andrei Mincă

cela me semble la solution la plus intuitive et la plus simple, merci!
gebbissimo

15

Si vous ne voulez pas avoir à spécifier la version à chaque fois que vous utilisez pip :

Installez pip:

$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python3

et exporter le chemin:

$ export PATH=/Library/Frameworks/Python.framework/Versions/<version number>/bin:$PATH

11
Pourriez-vous élaborer? Je ne vois pas comment l'installation de distribuer a quelque chose à voir avec le fait de ne pas avoir à spécifier la version de pip que vous souhaitez utiliser.
Piotr Dobrogost

13

Le chemin le plus court:

python3 -m pip install package
python -m pip install package

`` `(test-exif) alex @ alex-xps-13-9370: ~ / projects / oe / app / exif $ python3 -m pip install exif / usr / bin / python3: aucun module nommé
pip`

@axd dans ce cas, installez d'abord pip à l'aide de sudo apt-get install python3-pip. En supposant que vous utilisez python3.
fiveelements

5

Cela a fonctionné pour moi sur OS X: (Je dis cela parce que parfois c'est difficile que mac ait "sa propre" version de chaque outil open source, et vous ne pouvez pas le supprimer parce que "ses améliorations" le rendent unique pour que d'autres trucs de pomme fonctionnent , et si vous l'enlevez, les choses commencent à s'effondrer)

J'ai suivi les étapes fournies par @Lennart Regebro pour obtenir pip pour python 3, néanmoins pip pour python 2 était toujours le premier sur le chemin, donc ... ce que j'ai fait est de créer un lien symbolique vers python 3 dans / usr / bin ( en fait j'ai fait de même pour que mes 2 pythons tournent en paix):

ln -s /Library/Frameworks/Python.framework/Versions/3.4/bin/pip /usr/bin/pip3

Notez que j'ai ajouté un 3à la fin, donc ce que vous devez faire est d'utiliser pip3au lieu de simplement pip.

Le message est ancien mais j'espère que cela aidera quelqu'un un jour. cela devrait théoriquement fonctionner pour tout système LINUX.


4

Sur Suse Linux 13.2, pip appelle python3, mais pip2 est disponible pour utiliser l'ancienne version de python.


idem sur voidlinux
Radagast

4

Sous Windows, installez d'abord Python 3.7 puis Python 2.7. Ensuite, utilisez l'invite de commande:

pip install nom-module-python2

pip3 install nom-module-python3

C'est tout


3

Veuillez noter que sur msys2, j'ai trouvé ces commandes utiles:

$ pacman -S python3-pip
$ pip3 install --upgrade pip
$ pip3 install --user package_name

2

Je pensais que c'était une vieille question, je pense que j'ai une meilleure solution

  1. Pour utiliser pip pour un environnement python 2.x, utilisez cette commande -

    py -2 -m pip install -r requirements.txt

  2. Pour utiliser pip pour l'environnement python 3.x, utilisez cette commande -

    py -3 -m pip install -r requirements.txt

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.