Installer un module à l'aide de pip pour une version spécifique de python


138

Sur Ubuntu 10.04, Python 2.6 est installé par défaut, puis j'ai installé Python 2.7. Comment puis-je utiliser pip installpour installer des packages pour Python 2.7.

Par exemple:

pip install beautifulsoup4

par défaut installe BeautifulSoup pour Python 2.6

Quand je fais:

import bs4

en Python 2.6 cela fonctionne, mais en Python 2.7, il est dit:

No module named bs4


Réponses:


54

Utilisez une version de pipinstallé sur l'instance Python sur laquelle vous souhaitez installer de nouveaux packages.

Dans de nombreuses distributions, il peut y avoir des packages python2.6-pipet séparés python2.7-pip, appelés avec des noms binaires tels que pip-2.6et pip-2.7. Si pip n'est pas inclus dans votre distribution pour la cible souhaitée, vous pouvez rechercher un package setuptools ou easyinstall, ou utiliser virtualenv (qui inclura toujours pip dans un environnement généré).

Le site Web de pip comprend des instructions d'installation , si vous ne trouvez rien dans votre distribution.


6
Je n'ai ni pip-2.6 ni pip-2.7
torayeff

1
@torayeff Avez-vous recherché des packages pip spécifiques à la version? L'emballage est spécifique à la distribution, vous devrez donc soit faire un peu de travail vous-même (en recherchant dans les listes de packages disponibles), soit demander à un canal de support spécifique à Ubuntu.
Charles Duffy

1
J'ai essayé cette easy_install -d /usr/local/lib/python2.7/ beautifulsoup4, mais cela ne fonctionne pas, qu'entendez-vous par legwork?
torayeff

3
@torayeff la même chose s'applique à easy_install et à pip - vous devez utiliser une version construite sur l'interpréteur pour lequel vous essayez d'installer des packages. «legwork» est un langage familier faisant référence à l'effort, généralement d'une variété qui n'est pas particulièrement intellectuellement difficile mais qui peut prendre du temps (pensez à un travail qui nécessite du temps pour se promener) ... dans ce cas, revoir le Listes de packages Ubuntu.
Charles Duffy

1
@torayeff ... et encore une fois, si vous ne trouvez pas de paquet Ubuntu de pip ou d'installation facile spécifique à Python 2.7, vous pouvez installer pip à la main en suivant les instructions auxquelles j'ai lié dans ma réponse; assurez-vous simplement d'utiliser l' python2.7exécutable lorsque vous suivez ces instructions.
Charles Duffy

189

Alternativement, comme piplui-même est écrit en python, vous pouvez simplement l'appeler avec la version python pour laquelle vous souhaitez installer le package:

python2.7 -m pip install foo

1
Comme j'installe avec pip dans un environnement virtuel (mais j'ai besoin de l'exécuter contre le système python dans certains cas, avec PYTHONPATH défini - par exemple lors de l'utilisation de tout ce qui dépend de wxPython), c'est la commande qui a fonctionné pour moi.
Aaron D

6
MEILLEURE solution à tous les problèmes Python2 et Python3!
Harsh Vardhan Ladha

9
Je dois noter que la bonne façon d'appeler un module en python est avecpython 2.7 -m pip install foo
llrs

2
Je ne peux pas assez voter pour cette réponse. Enfin résolu ce problème douloureux sur DietPi (Raspberry distro)
Pitto

1
@Sergio Il semble que -m ne soit pas au bon endroit pour moi, je pense que la commande devrait ressembler davantage àpy37 -m "location-of-pip" install numpy
jrh

53

Vous pouvez exécuter le module pip pour une version spécifique de python en utilisant le python correspondant:

Python 2.6:

python2.6 -m pip install beautifulsoup4

Python 2.7

python2.7 -m pip install beautifulsoup4

3
J'ai parcouru Internet plusieurs fois à la recherche de cette commande. Je suppose que la plupart des gens utilisent un environnement virtuel pour résoudre ce problème, mais c'est une stratégie beaucoup plus viable pour moi.
Dave Liu

Et si je suis dans mon script python qui appelle pip install beautifulsoup4. Comment puis-je m'assurer que le script a été appelé avec l'indicateur -m?
Ogen

C'était la dernière pièce de mon puzzle, merci! pipet pip3étaient tous les deux verrouillés à python3.X pour moi, j'ai donc dû utiliser cette méthode comme un moyen détourné d'installer pip pour python2.7
airdas

25

Vous pouvez utiliser cette syntaxe

python_version -m pip install your_package

Par exemple. Si vous exécutez python3.5, vous l'avez nommé "python3" et souhaitez installer le package numpy

python3 -m pip install numpy

C'est comme ma réponse, mais en mieux, car il n'a pas besoin de jouer avec les chemins système.
Turion

Il semble que ce soit maintenant la meilleure réponse. J'ai aussi parfaitement travaillé avec moi.
LogicOnAbstractions

18

Sous Windows, vous pouvez exécuter le module pip en mentionnant la version python (vous devez vous assurer que le lanceur est sur votre chemin)

py -2 -m pip install pyfora

1
Merci. Cela s'est réveillé dans mon cas. J'ai la version 3.4 et 3.7. J'ai dû exécuter py -3.7 -m pip install -r requirements.txt pour utiliser le pip associé à python 3.7
rodrigorf

6

Alternativement, si vous souhaitez installer une version spécifique du package avec la version spécifique de python, c'est la manière

sudo python2.7 -m pip install pyudev=0.16

si le "=" ne fonctionne pas, utilisez ==

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev=0.16

Exigence non valide: 'pyudev = 0.16' = n'est pas un opérateur valide. Vouliez-vous dire ==?

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev==0.16

fonctionne bien


4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi

1
Cela ne fonctionne pas lorsque vous avez plusieurs installations de python3. J'ai 3.4et 3.5, et je ne peux pip installrien pour quoi 3.4.
byxor

3

Si vous avez les versions 2.7 et 3.x de python installées, alors renommez simplement le fichier exe python de la version 3.x de python en quelque chose comme - "python.exe" en "python3.exe". Vous pouvez désormais utiliser pip pour les deux versions individuellement. Si vous tapez normalement "pip install", il considérera la version 2.7 par défaut. Si vous souhaitez l'installer sur la version 3.x, vous devez appeler la commande "python3 -m pip install".


2

Pour Python 3

sudo apt-get install python3-pip
sudo pip3 install beautifulsoup4

Pour Python 2

sudo apt-get install python2-pip
sudo pip2 install beautifulsoup4

Sur Debian / Ubuntu, pipest la commande à utiliser lors de l'installation de packages pour Python 2, tandis que pip3est la commande à utiliser lors de l'installation de packages pour Python 3.


cette réponse tombe lorsque vous avez tous les deux python3.6 et python3.7 par exemple. Ensuite, pip3 installera les packages uniquement pour python3 par défaut.
muyustan

2

pour l'utilisation de python2:

py -2 -m pip install beautifulsoup4

1

Comme pour tout autre script python, vous pouvez spécifier l'installation python avec laquelle vous souhaitez l'exécuter. Vous pouvez le mettre dans votre profil shell pour enregistrer l'alias. Le $1fait référence au premier argument que vous passez au script.

# PYTHON3 PIP INSTALL V2
alias pip_install3="python3 -m $(which pip) install $1"

0

J'ai installé Python 2.7 via chocolatey sur Windows et trouvé pip2.7.exedans C:\tools\python2\Scripts.

L'utilisation de cet exécutable au lieu de la pipcommande a installé le module approprié pour moi ( requestspour Python 2.7).


0

J'ai rencontré un problème similaire avec un autre package appelé Twisted. Je voulais l'installer pour Python 2.7, mais il n'a été installé que pour Python 2.6 (version par défaut du système).

Faire un simple changement a fonctionné pour moi.

Lorsque vous ajoutez le chemin de Python 2.7 à votre $PATHvariable, ajoutez-le au début comme ceci:, PATH=/usr/local/bin:$PATHafin que le système utilise cette version.

Si vous rencontrez plus de problèmes, vous pouvez suivre ce billet de blog qui m'a aidé - https://github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.-follow-this-sequence -exactement-pour-centos-machine-uniquement

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.