Existe-t-il un moyen de rendre pip
utilisable avec plusieurs versions de Python? Par exemple, je souhaite utiliser pip
pour installer explicitement des éléments sur l’installation de mon site 2.5 ou de mon installation 2.6.
Par exemple, avec easy_install
, j'utilise easy_install-2.{5,6}
.
Et oui - je connais virtualenv, et non - ce n'est pas une solution à ce problème particulier.
La recommandation current est d'utiliser python -m pip
, où python
est la version de Python que vous souhaitez utiliser. Ceci est la recommandation car cela fonctionne dans toutes les versions de Python et dans toutes les formes de virtualenv. Par exemple:
# The system default python:
$ python -m pip install fish
# A virtualenv's python:
$ .env/bin/python -m pip install fish
# A specific version of python:
$ python-3.6 -m pip install fish
Réponse précédente, laissée à la postérité:
Depuis la version 0.8, Pip supporte pip-{version}
. Vous pouvez l'utiliser de la même façon que easy_install-{version}
:
$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage
EDIT: pip a changé son schéma pour utiliser pipVERSION
au lieu de pip-VERSION
dans la version 1.5. Vous devriez utiliser ce qui suit si vous avez pip >= 1.5
:
$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage
Consultez https://github.com/pypa/pip/pull/1053 pour plus de détails
Références:
Sous Windows, vous pouvez exécuter le module pip en mentionnant la version de python (vous devez vous assurer que le programme de lancement est sur votre chemin).
py -3.4 -m pip install pyfora
py -2.7 -m pip install pyfora
Alternativement, vous pouvez appeler le fichier exécutable python souhaité directement comme ceci:
/path/to/python.exe -m pip install pyfora
/path/to/python2.{5,6} /path/to/pip install PackageName
ne fonctionne pas?
Pour que cela fonctionne sur toutes les versions de python sur lesquelles pip n'est pas déjà installé, vous devez télécharger pip et faire python*version* setup.py install
. Par exemple python3.3 setup.py install
. Cela résout l'erreur d'importation dans les commentaires. (Comme suggéré par @hbdgaf)
Python 2.6 était installé par défaut (Amazon EC2 AMI), mais j'avais besoin de python2.7 ainsi que de packages externes pour mon application. En supposant que vous avez déjà installé python2.7 avec python par défaut (2.6 dans mon cas). Voici comment installer pip et les packages pour python2.7 autre que celui par défaut
Installez pip pour votre version de python:
curl -O https://bootstrap.pypa.io/get-pip.py
python27 get-pip.py
Utilisez une version spécifique de pip pour installer des packages:
pip2.7 install mysql-connector-python --allow-external mysql-connector-python
Cela a fonctionné pour moi dans Windows de cette façon:
J'ai changé le nom des fichiers python python.py et pythonw.exe en python3.py pythonw3.py
Ensuite, j'ai juste lancé cette commande dans l'invite:
python3 -m pip install package
D'autres réponses montrent comment utiliser pip avec Python 2.X et 3.X, mais ne montre pas comment gérer le cas de plusieurs distributions Python (par exemple, Python original et Anaconda Python) .
J'ai un total de 3 versions de Python: Python original 2.7 et Python 3.5 et Anaconda Python 3.5.
Voici comment j'installe un paquet dans:
Original Python 3.5 :
/usr/bin/python3 -m pip install python-daemon
Original Python 2.7 :
/usr/bin/python -m pip install python-daemon
Anaconda Python 3.5 :
python3 -m pip install python-daemon
ou
pip3 install python-daemon
Plus simple, Anaconda écrasant les binaires Python d'origine dans l'environnement utilisateur.
Bien entendu, l’installation dans anaconda doit être effectuée avec la commande conda
, ceci n’est qu’un exemple.
Assurez-vous également que pip est installé pour ce python spécifique. Vous devrez peut-être installer manuellement pip. Cela fonctionne dans Ubuntu 16.04:
Sudo apt-get install python-pip
ou
Sudo apt-get install python3-pip
J'ai récemment rencontré ce problème moi-même et j'ai constaté que je ne recevais pas le bon pip pour Python 3, sur mon système Linux doté également de Python 2.
Tout d’abord, vous devez vous assurer que vous avez installé pip pour votre version de python:
Pour Python 2:
Sudo apt-get install python-pip
Pour Python 3:
Sudo apt-get install python3-pip
Ensuite, pour installer des packages pour une version de Python ou une autre, utilisez simplement les éléments suivants pour Python 2:
pip install <package>
ou pour Python 3:
pip3 install <package>
pip est aussi un paquet python. Donc, le moyen le plus simple d'installer des modules sur une version spécifique de python serait le suivant
python2.7 /usr/bin/pip install foo
ou
python2.7 -m pip install foo
Donc, apparemment, il existe plusieurs versions de easy_install
et pip
. Cela semble être un gros bazar. Quoi qu'il en soit, voici ce que j'ai fait pour installer Django pour Python 2.7 sur Ubuntu 12.10:
$ Sudo easy_install-2.7 pip
Searching for pip
Best match: pip 1.1
Adding pip 1.1 to easy-install.pth file
Installing pip-2.7 script to /usr/local/bin
Using /usr/lib/python2.7/dist-packages
Processing dependencies for pip
Finished processing dependencies for pip
$ Sudo pip-2.7 install Django
Downloading/unpacking Django
Downloading Django-1.5.1.tar.gz (8.0Mb): 8.0Mb downloaded
Running setup.py Egg_info for package Django
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: Django
Running setup.py install for Django
changing mode of build/scripts-2.7/Django-admin.py from 644 to 755
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
changing mode of /usr/local/bin/Django-admin.py to 755
Successfully installed Django
Cleaning up...
$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Django
>>>
Sous Linux, Mac OS X et d'autres systèmes POSIX, utilisez les commandes Python versionnées en combinaison avec le commutateur -m
pour exécuter la copie appropriée de pip
:
python2.7 -m pip install SomePackage
python3.4 -m pip install SomePackage
(des commandes pip correctement versionnées peuvent également être disponibles)
Sous Windows, utilisez le lanceur py
de Python en combinaison avec le commutateur -m
:
py -2.7 -m pip install SomePackage # specifically Python 2.7
py -3.4 -m pip install SomePackage # specifically Python 3.4
si vous obtenez une erreur pour py -3.4
, essayez:
pip install SomePackage
De là: https://docs.python.org/3/installing/
Voici comment installer des packages pour différentes versions qui sont installées simultanément linux, mac, posix:
python2 -m pip install SomePackage # default Python 2
python2.7 -m pip install SomePackage # specifically Python 2.7
python3 -m pip install SomePackage # default Python 3
python3.4 -m pip install SomePackage # specifically Python 3.4
python3.5 -m pip install SomePackage # specifically Python 3.5
python3.6 -m pip install SomePackage # specifically Python 3.6
Sous Windows, utilisez le programme de lancement py Python en combinaison avec le commutateur -m:
py -2 -m pip install SomePackage # default Python 2
py -2.7 -m pip install SomePackage # specifically Python 2.7
py -3 -m pip install SomePackage # default Python 3
py -3.4 -m pip install SomePackage # specifically Python 3.4
La plupart des réponses ici abordent le problème, mais je souhaite ajouter quelque chose qui me trouble continuellement en ce qui concerne la création d'une autre installation de python dans le /usr/local
sur CentOS 7. Lorsque j'y ai installé, il semblait que pip fonctionnait depuis que je pouvais utiliser pip2.7 install
et il installerait des modules. Cependant, je ne pouvais pas comprendre pourquoi ma version nouvellement installée de python ne voyait pas ce que j'installais.
Il s'avère que dans CentOS 7, il existe déjà un python2.7 et un pip2.7 dans le dossier /usr/bin
. Pour installer pip pour votre nouvelle distribution Python, vous devez spécifiquement indiquer à Sudo d’aller à /usr/local/bin
Sudo /usr/local/bin/python2.7 -m ensurepip
Cela devrait installer pip2.7 dans votre dossier /usr/local/bin
avec votre version de python. L'astuce est que lorsque vous souhaitez installer des modules, vous devez soit modifier la variable Sudo $PATH
pour inclure /usr/local/bin
, soit exécuter
Sudo /usr/local/bin/pip2.7 install <module>
si vous voulez installer un nouveau module. Il m'a fallu une éternité pour me souvenir que Sudo
ne voyait pas immédiatement /usr/local/bin
.
Installation de plusieurs versions de Python et de leurs packages respectifs.
Version Python sur le même ordinateur Windows: 2.7, 3.4 et 3.6
Installation des 3 versions de Python :
PATH pour les 3 versions de Python :
Renommer les exécutables pour les versions :
Coche l'invite de commande avec toutes les versions:
Installation des packages séparément pour chaque version
C’est probablement ce qui est complètement faux (je suis un noob en python), mais je viens d’entrer et de modifier le fichier pip.
#!/usr/bin/env python3 <-- I changed this line.
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal import main
if __== '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
Vous pouvez aller par exemple à C:\Python2.7\Scripts, puis exécuter cmd à partir de ce chemin. Après cela, vous pouvez lancer pip2.7, installer votre package ...
Cela installera le paquet pour cette version de Python.
Voici mon point de vue sur le problème. Fonctionne pour Python3. Les principales caractéristiques sont:
Les étapes sont les suivantes:
Si vous avez plusieurs versions supplémentaires de Python installées d’une autre manière, supprimez-les, par exemple, supprimez $ HOME/.local/lib/python3.x, etc. (ainsi que celles installées globalement). Ne touchez pas la version python3 par défaut de votre système.
Téléchargez le source pour différentes versions de python sous la structure de répertoires suivante:
$HOME/
python_versions/ : download Python-*.tgz packages here and "tar xvf" them. You'll get directories like this:
Python-3.4.8/
Python-3.6.5/
Python-3.x.y/
...
À chaque répertoire "Python-3.x.y /", procédez comme suit (faitesPASutilisez "Sudo" dans l'une des étapes!):
mkdir root
./configure --prefix=$PWD/root
make -j 2
make install
virtualenv --no-site-packages -p root/bin/python3.x env
Dans "python_versions /", créez des fichiers comme celui-ci:
env_python3x.bash:
#!/bin/bash
echo "type deactivate to exit"
source $HOME/python_versions/Python-3.x.y/env/bin/activate
Maintenant, chaque fois que vous souhaitez opter pour python3.x, faites
source $HOME/python_versions/env_python3x.bash
entrer dans le virtualenv
Dans virtualenv, installez vos paquets python préférés avec
pip install --upgrade package_name
Pour quitter les versions virtualenv et python, tapez simplement "deactivate"
Pour Windows en particulier: \ path\to\python.exe -m pip install PackageName fonctionne.
par exemple, si vous définissez d'autres versions (par exemple 3.5) par défaut et souhaitez installer pip pour Python 2.7:
Contexte: Archlinux
Action:
Installez python2-pip:Sudo pacman -S python2-pip
Vous avez maintenant pip2.7:Sudo pip2.7 install boto
Test (dans mon cas j'avais besoin de 'boto'):
Exécutez les commandes suivantes:
python2
import boto
Succès: pas d'erreur.
Sortie: Ctrl+D