web-dev-qa-db-fra.com

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

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 de 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?

86
coffee-grinder

Si vous pouvez installer le dernier Python (2.7.9 et versions ultérieures), Pip est désormais fourni avec. Voir: https://docs.python.org/2.7//installing /index.html
Si non :
Mise à jour (à partir des notes de publication):

À partir de la version 1.5.1, pip n’a pas besoin 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:
Modification de l'URL pour l'installation de setuptools.

EDIT 10-Feb-2014:
Installation de setuptools supprimée (merci @Ciantic)

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

EDIT 1-Mar-2015:
Pip est maintenant livré avec Python

89
Tal Weiss

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 les suivantes:

$ 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 instructions virtualenv plutôt que les instructions système. Le easy_install _ les instructions existent depuis plus longtemps, mais il n’est plus nécessaire de le faire ainsi.

21
Richard Jones

Cette réponse provient 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 devriez remplacer la première étape par le téléchargement de setuptools à partir de http://pypi.python.org/pypi/setuptools
  • Sous Windows, vous devrez omettre virtualenvwrapper à la dernière étape et l’installer manuellement. Je ne sais pas s’il est possible de le faire sans Cygwin, mais je l’espère.
16
coffee-grinder

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

Sudo apt-get install python-pip virtualenvwrapper
4
Jason McVetta

Faire ceci:

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
pip install virtualenv

Voir

3
asmaier

Il n’existe pas vraiment de "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 la suivante: "Est-ce que je veux utiliser le système Python?" Si vous voulez utiliser le Python distribué avec votre système d'exploitation, alors utiliser la méthode d'installation apt-get peut être très bien. Cependant, en fonction de la méthode de distribution du système d'exploitation, vous devez toujours demander plus de questions, telles que "Est-ce que je veux installer plusieurs versions de ce paquet?" Si la réponse est oui, alors ce n’est probablement pas une bonne idée d’utiliser quelque chose comme Apt. Dpkg ne fera quasiment pas décompresser une archive à la racine de le système de fichiers, il appartient donc au mainteneur du paquet de s’assurer que le paquet s’installe en toute sécurité, en supposant très peu d’hypothèses. un package de niveau supérieur.

Par exemple, supposons que le paquet soit "virtualenv", vous vous retrouveriez avec /usr/lib/python2.x/site-packages/virtualenv. Si vous l'installez avec easy_install vous obtiendrez quelque chose comme /usr/lib/python2.x/site-packages/virtualenv.Egg-link qui pourrait pointer vers /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.Egg qui peut être un répertoire ou un oeuf compressé. Pip fait quelque chose de similaire bien qu'il n'utilise pas d'oeufs et place le paquet de niveau supérieur directement dans le répertoire lib.

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 mettre en sandbox vos bibliothèques Python) de sorte que vous puissiez avoir toute combinaison de bibliothèques et de versions dont vous avez besoin.

Setuptools permet également l’installation de paquets multiversion, ce qui signifie qu’il n’ya pas un seul module_name.Egg-link établi. Pour importer ces paquets, vous devez utiliser pkg_resources et le __import__ une fonction.

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

Je devrais également mentionner qu'aucune de ces options n'est intrinsèquement meilleure que les autres. Ils prennent simplement des approches différentes. L’utilisation de la version système est un excellent moyen d’installer les applications Python, mais il peut s’avérer très difficile de développer avec Python. Il est très pratique d’installer facile et setuptools dans un monde sans virtualenv, mais si vous devez utiliser différentes versions de la même bibliothèque, elle devient alors assez lourde à la fois. Pip et virtualenv agissent vraiment plus comme une machine virtuelle. Au lieu de prendre soin d'installer tout cela côte à côte, vous créez simplement un tout nouvel environnement. Voici que plus de 30 serveurs virtuels plus tard, vous avez peut-être utilisé assez d’espace disque et surchargé votre système de fichiers.

Comme vous pouvez le constater, avec les nombreuses options, il est difficile de dire quelle méthode utiliser, mais avec un peu d’investigation dans vos cas d’utilisation, vous devriez être capable de trouver une méthode qui fonctionne.

3
elarson

Il n'y a pas de méthode préférée - tout dépend de vos besoins. Vous devez souvent avoir différents interprètes Python sur le système, quelle qu'en soit la raison. Dans ce cas, vous devez installer les éléments individuellement pour chaque interprète. De plus, je préfère installer ces éléments moi-même plutôt que de dépendre de produits pré-emballés posant parfois des problèmes - mais ce n'est qu'une option possible.

3
Andreas Jung

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

Sudo apt-get install python-virtualenv

qui vous permet de créer virtualenvs, ou

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

qui vous permet d'installer des paquets 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 que pip est fourni et sera installé dans tout virtualenv que vous créez).

Si vous souhaitez simplement installer des packages, la deuxième commande vous donne ce dont vous avez besoin. Utilisez un 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 voulez absolument pas utiliser ses paquets (à l'exception de Python lui-même, probablement)), vous pouvez télécharger virtualenv, sous forme de script tar ou autonome:

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

Si votre distribution est plutôt du type Edge saignant, Python3.3 a des capacités intégrées similaires à celles de virtualenv:

python3 -m venv ./venv

Cela va beaucoup plus vite, mais setuptools et pip ne sont pas inclus.

2
Tobu

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

C'est un bon point, vous devriez faire ce que disent les docs.

Cité à partir des instructions officielles d'installation 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 ...
2
coffee-grinder

Etant donné que virtualenvs contient 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 à ma guise et je pars. il pourrait également être intéressant de jeter un coup d'œil au virtualenv-burrito de Jeremy Avnet:

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

2
David Gouldin

Pour installer pip sur un mac (osx), le liner suivant a très bien fonctionné pour moi:

Sudo easy_install pip
2
Brad Parks

En Raspbian, il n'y a même pas besoin de mentionner python2.7. En effet, c’est la meilleure façon d’installer pip si python dans moins de 2.7.9.

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

Merci à @ tal-weiss

2
Hemant Kumar

J'utilise get-pip et virtualenv-burrito pour installer tout cela. Pas sûr que python-setuptools soit 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
1
carl_kibler

https://github.com/pypa/pip/raw/master/contrib/get-pip.py est probablement le bon moyen maintenant.

1
coderanger

Sur Debian, la meilleure façon de le faire serait

Sudo apt-get install python-pip

1
Yehonatan

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

0
bradley.ayers