Quelle est la méthode officielle «préférée» pour installer pip et virtualenv dans tout le système?

86

Est-ce cela, que les gens semblent recommander le plus souvent:

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv

Ou ceci, que j'ai obtenu sur http://www.pip-installer.org/en/latest/installing.html :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

Ou quelque chose de complètement différent?

Moulin à café
la source

Réponses:

93

Si vous pouvez installer la dernière version de Python (2.7.9 et plus), Pip est maintenant fourni avec. Voir: https://docs.python.org/2.7//installing/index.html
Sinon:
Mettre à jour (à partir des notes de publication):

À partir de la version 1.5.1, pip ne nécessite pas de setuptools avant d'exécuter get-pip.py. De plus, si setuptools (ou distribuer) n'est pas déjà installé, get-pip.py installera setuptools pour vous.

Je lance maintenant le régulier:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

Voici les instructions d'installation officielles: http://pip.readthedocs.org/en/latest/installing.html#install-pip

EDIT 25-Jul-2013:
URL modifiée pour l'installation de setuptools.

EDIT 10-Feb-2014:
Suppression de l'installation de setuptools (merci @Ciantic)

EDIT 26-juin-2014:
URL mise à jour à nouveau (merci @LarsH)

EDIT 1-Mar-2015:
Pip est maintenant fourni avec Python

Tal Weiss
la source
1
Où / comment installer setuptools-0.8? On dirait que vous êtes en train de saisir ez_setup.pypour une "version allégée" de faire pip. Je ferais la même chose mais je crains que cela ne se brise dans un proche avenir et que je reste coincé ici (comme je le fais toujours)
Steven Lu
3
Ah, on dirait que les instructions disent de faire ce que vous dites ici, c'est sanctionné. Pas de soucis alors.
Steven Lu
4
Il existe une nouvelle (?) Façon de faire cela, cela installe automatiquement pip et setuptools: wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py puis python get-pip.py(peut nécessiter sudo)
Ciantic
3
Maintenant, l'URL de get-pip.py semble avoir changé en https://bootstrap.pypa.io/get-pip.py. Il vaut probablement mieux simplement créer un lien vers les instructions officielles.
LarsH
2
PS Merci pour cette réponse - cela m'a aidé à installer pip.
LarsH
21

http://www.pip-installer.org/en/latest/installing.html est vraiment la réponse canonique à cette question.

Plus précisément, les instructions à l'échelle du système sont:

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

La section citée dans la question concerne les virtualenvinstructions plutôt que celles à l'échelle du système. Les easy_installinstructions existent depuis plus longtemps, mais il n'est plus nécessaire de le faire de cette façon.

Richard Jones
la source
Modifié pour clarifier la différence entre les instructions du système sur cette page et les virtualenvinstructions citées dans la question
ncoghlan
1
Mise à jour: distribuer ne fonctionne plus pour pip! Voir stackoverflow.com/a/17601159/78234
Tal Weiss
1
Veuillez noter que les instructions sur la page liée ne correspondent plus aux instructions ici. Il est préférable de simplement visiter la page officielle et de faire ce qu'ils disent (et pourquoi quelqu'un a-t-il douté d'eux en premier lieu?!)
Neil Traft
L'approche décrite dans cette réponse est dépassée et ne semble plus fonctionner.
cel
16

Cette réponse vient de @webology sur Twitter:

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install --upgrade pip virtualenv virtualenvwrapper

Mes notes ajoutées:

  • Sur Mac / Windows (et Linux si le référentiel apt est obsolète), vous remplaceriez la première étape par le téléchargement de setuptools depuis http://pypi.python.org/pypi/setuptools
  • Sous Windows, vous devez omettre virtualenvwrapper de la dernière étape et l'installer manuellement d'une manière ou d'une autre. Je ne sais pas s'il existe un moyen de faire cela sans Cygwin, mais je l'espère.
Moulin à café
la source
1
Si la condition est que vous vouliez des installations à l'échelle du système de pip et virtualenv, c'est ce que je fais généralement. Les instructions de la documentation pip qui sont données comme deuxième alternative dans la question sont basées sur le principe que nous évitons d'installer quoi que ce soit à l'échelle du système.
Carl Meyer
3
Vous pouvez remplacer les deux premières commandes par $ sudo apt-get install python-pip. L'installation de python-pip installera également python-setuptools.
Dennis
4

Sur Ubuntu 12.04, j'ai eu de la chance en utilisant simplement le gestionnaire de paquets:

sudo apt-get install python-pip virtualenvwrapper
Jason McVetta
la source
1
Les versions packagées sont loin d'être à jour. 12.04 fournit python-pip 1.0-1build1qui a été publié au début de 2011 et virtualenvwrapper 2.11.1-21publié en janvier 2012. La réponse de @Richard Jones vous donnera les dernières nouvelles.
JCotton
3

Il n'y a pas de méthode préférée - tout dépend de vos besoins. Souvent, vous avez besoin d'avoir différents interpréteurs Python sur le système pour une raison quelconque. Dans ce cas, vous devez installer les éléments individuellement pour chaque interprète. En dehors de cela: je préfère installer des trucs moi-même au lieu de dépendre de trucs pré-emballés causant parfois des problèmes - mais ce n'est qu'une option possible.

Andreas Jung
la source
Je pose des questions sur la méthode préférée spécifiquement parce que je vais donner ces instructions à une classe de 20 personnes et je ne veux pas les induire en erreur.
moulin à café
3

Il n'y a vraiment pas une seule «réponse» à cette question, mais il existe certainement des concepts utiles qui peuvent vous aider à prendre une décision.

La première question à laquelle il faut répondre dans votre cas d'utilisation est "Est-ce que je veux utiliser le système Python?" Si vous souhaitez utiliser le Python distribué avec votre système d'exploitation, utiliser la méthode d'installation apt-get peut être très bien. Cependant, selon la méthode de distribution du système d'exploitation, vous devez encore poser quelques questions supplémentaires, telles que "Est-ce que je veux installer plusieurs versions de ce package?" Si la réponse est oui, alors ce n'est probablement pas une bonne idée d'utiliser quelque chose comme apt. Dpkg décompressera à peu près juste une archive à la racine du système de fichiers, c'est donc au responsable du paquet de s'assurer que le paquet s'installe en toute sécurité avec de très petites hypothèses. Dans le cas de la plupart des paquets Debian, je suppose (quelqu'un peut se sentir libre de me corriger ici) qu'ils décompressent simplement et fournissent un paquet de premier niveau.

Par exemple, disons que le package est "virtualenv", vous vous retrouverez avec /usr/lib/python2.x/site-packages/virtualenv. Si vous l'installez avec, easy_installvous obtiendrez quelque chose comme /usr/lib/python2.x/site-packages/virtualenv.egg-linkça qui pourrait pointer vers /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.eggun répertoire ou un œuf zippé. Pip fait quelque chose de similaire bien qu'il n'utilise pas d'œufs et placera à la place le package de niveau supérieur directement dans le librépertoire.

Je suis peut-être sur les chemins, mais le fait est que chaque méthode prend en compte des besoins différents. C'est pourquoi des outils comme virtualenv sont utiles car ils vous permettent de sandbox vos bibliothèques Python de sorte que vous puissiez avoir n'importe quelle combinaison dont vous avez besoin de bibliothèques et de versions.

Setuptools permet également d'installer des packages en tant que multiversion, ce qui signifie qu'il n'y a pas de mo unique dule_name.egg-linkcréé. Pour importer ces packages, vous devez utiliser pkg_resources et la __import__fonction.

Pour revenir à votre question initiale, si vous êtes satisfait du système python et que vous prévoyez d'utiliser virtualenv et pip pour créer des environnements pour différentes applications, l'installation de virtualenv et / ou pip au niveau du système à l'aide d'apt-get semble tout à fait appropriée. Un mot d'avertissement cependant est que si vous prévoyez de mettre à niveau vos distributions Python, cela peut avoir un effet d'entraînement sur vos virtualenvs si vous vous connectez à vos packages de site système.

Je dois également mentionner qu'aucune de ces options n'est intrinsèquement meilleure que les autres. Ils adoptent simplement des approches différentes. L'utilisation de la version système est un excellent moyen d'installer des applications Python, mais cela peut être un moyen très difficile de développer avec Python. L'installation et les outils de configuration faciles sont très pratiques dans un monde sans virtualenv, mais si vous devez utiliser différentes versions de la même bibliothèque, cela devient également assez compliqué. Pip et virtualenv agissent vraiment plus comme une machine virtuelle. Au lieu de prendre soin d'installer les choses côte à côte, vous créez simplement un tout nouvel environnement. L'inconvénient ici est que plus de 30 virtualenvs plus tard, vous avez peut-être utilisé un peu d'espace disque et encombré votre système de fichiers.

Comme vous pouvez le voir, avec les nombreuses options, il est difficile de dire quelle méthode utiliser, mais avec une petite enquête sur vos cas d'utilisation, vous devriez être en mesure de trouver une méthode qui fonctionne.

Elarson
la source
2

Puisque les virtualenvs contiennent pip par défaut, je n'installe presque jamais pip globalement. Ce que je fais finit par ressembler davantage à:

$ sudo apt-get install python-setuptools
$ curl -O http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py
$ sudo easy_install virtualenv

Je procède ensuite à l'installation et à la configuration de virtualenvwrapper à mon goût et je pars. il pourrait également être intéressant de jeter un œil au virtualenv-burrito de Jeremy Avnet:

https://github.com/brainsik/virtualenv-burrito

David Gouldin
la source
Merci pour la capture. ;)
David Gouldin
3
Pourquoi vous embêtez-vous avec python-setuptools puis distribuez-vous alors que vous pouvez aller directement distribuer?
lambacck
@lambacck Pourriez-vous s'il vous plaît poster ce que vous décrivez dans une réponse séparée (même si cela semble répétitif)?
moulin à café du
2
Sans parler du fait que sur tout Ubuntu récent (et Debian aussi? Pas sûr), le paquet "python-setuptools" EST en fait distribué, donc vous pouvez aussi simplement sauter l'étape de distribution spécifique.
Carl Meyer
@ coffee-moulin distribuer est une fourchette de setuptools et fournit donc la même fonctionnalité (et plus). Ne vous embêtez pas à faire "apt-get install python-setuptools" à moins que python-setuptools ne soit distribué (comme Carl l'indique), auquel cas sautez les étapes 2 et 3.
lambacck
2

@ericholscher dit sur Twitter: "Celui dans la documentation officielle .."

C'est un excellent point, vous devriez faire ce que disent les documents.

Extrait des instructions d'installation officielles de pip à l' adresse http://www.pip-installer.org/en/latest/installing.html :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...
Moulin à café
la source
✓ C'est la meilleure option si vous ne voulez pas vous fier aux paquets de distribution.
Tobu
2

À partir des packages de distribution, vous pouvez soit utiliser:

sudo apt-get install python-virtualenv

qui vous permet de créer des virtualenvs, ou

sudo apt-get install python{,3}-pip

qui vous permet d'installer des packages arbitraires dans votre répertoire personnel.

Si vous êtes habitué à virtualenv, la première commande vous donne tout ce dont vous avez besoin (rappelez-vous, pip est fourni et sera installé dans n'importe quel virtualenv que vous créez).

Si vous souhaitez simplement installer des packages, la deuxième commande vous donne ce dont vous avez besoin. Utilisez pip comme ceci:

pip install --user something

et mettre quelque chose comme

PATH=~/.local/bin:$PATH

dans votre ~/.bashrc.


Si votre distribution est ancienne et que vous ne souhaitez pas du tout utiliser ses packages (sauf pour Python lui-même, probablement), vous pouvez télécharger virtualenv, soit en tant que tarball, soit en tant que script autonome:

wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py
chmod +x ~/bin/virtualenv

Si votre distribution est plus du genre à la pointe de la technologie, Python3.3 a des capacités intégrées de type virtualenv:

python3 -m venv ./venv

Cela fonctionne beaucoup plus rapidement, mais setuptools et pip ne sont pas inclus.

Tobu
la source
2

Pour installer pip sur un mac (osx), la doublure suivante a très bien fonctionné pour moi:

sudo easy_install pip
Brad Parks
la source
2

Dans Raspbian, il n'est même pas nécessaire de mentionner python2.7. En effet, c'est la meilleure façon d'installer pip si la version python est inférieure à 2.7.9.

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

Merci à @ tal-weiss

Hemant Kumar
la source
1

J'utilise get-pip et virtualenv-burrito pour installer tout cela. Je ne sais pas si python-setuptools est requis.

# might be optional. I install as part of my standard ubuntu setup script
sudo apt-get -y install python-setuptools

# install pip (using get-pip.py from pip contrib)
curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && sudo python get-pip.py

# one-line virtualenv and virtualenvwrapper using virtualenv-burrito
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash
carl_kibler
la source
1

Sur Debian, la meilleure façon de procéder serait

sudo apt-get install python-pip

Yehonatan
la source
1
La version debian peut être très ancienne. vérifiez cette réponse pour plus d'informations: unix.stackexchange.com/a/182467/17425
georgiecasey
0

La première méthode est bonne. Le seul problème que je vois est que vous pourriez vous retrouver avec une ancienne version de setuptools (si le référentiel apt n'a pas été mis à jour.

bradley.ayers
la source