86 votes

Qu'est-ce que l'officiel "préféré" pour installer pip et virtualenv à l'échelle du 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 ce que j'ai eu 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 totalement différent?

89voto

Tal Weiss Points 2763

Mise à jour (à partir de la publication des notes):

Début de la v1.5.1, pip ne nécessite pas de setuptools avant l'exécution de get-pip.py. En outre, si setuptools (ou distribuer) n'est pas déjà installé, get-pip.py va installer setuptools pour vous.

J'ai l'ordinaire:

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

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

EDITION 25-Jul-2013:
Changé d'URL pour setuptools installer.

EDIT 10-Feb-2014:
Retiré setuptools installer (merci @Ciantic)

EDIT 26-Jun-2014:
Mise à jour de l'URL de nouveau (merci @LarsH)

21voto

Richard Jones Points 325

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

Plus précisément, l'échelle du système, les instructions 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

L'article cité dans la question, la virtualenv instructions plutôt qu'à l'échelle du système. L' easy_install des instructions ont été autour depuis plus longtemps, mais il n'est pas nécessaire de le faire de cette manière.

16voto

coffee-grinder Points 4366

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

Ma note ajoutée:

  • Sur Mac/Windows (et Linux si l'apt repo est obsolète) remplacer la première étape avec le téléchargement de setuptools http://pypi.python.org/pypi/setuptools
  • Sur Windows, vous avez de l'omettre virtualenvwrapper de la dernière étape et l'installer manuellement en quelque sorte. Je ne sais pas si il existe un moyen de le faire sans Cygwin, mais je l'espère.

3voto

Andreas Jung Points 1

Il n'existe 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 quelque raison que ce soit. Dans ce cas, vous devez installer les fichiers individuellement pour chaque interprète. En dehors de cela: je préfère l'installation de trucs moi-même au lieu de la fonction de pré-emballés, des trucs parfois à l'origine de problèmes - mais ce n'est pas possible avis.

3voto

elarson Points 173

Il n'y a vraiment pas une "réponse" à cette question, mais il ya certainement certains des concepts utiles qui peuvent vous aider à venir à une décision.

La première question qui doit être répondu dans votre cas d'utilisation est la suivante: "je veux utiliser le système de Python?" Si vous souhaitez utiliser le Python distribués avec votre système d'exploitation, puis à l'aide de apt-get install méthode peut être très bien. Selon le système d'exploitation de la méthode de distribution si, vous avez toujours pour vous poser d'autres questions, telles que "je veux installer plusieurs versions de ce paquet?" Si la réponse est oui, alors il est probablement pas une bonne idée d'utiliser quelque chose comme apt. Dpkg assez bien sera juste décompresser une archive à la racine du système de fichier, donc c'est le mainteneur du paquet à assurez-vous que le paquet est installé en toute sécurité dans des conditions très peu d'hypothèses. Dans le cas de la plupart des paquets debian, je suppose (quelqu'un peut se sentir libre pour me corriger ici) qu'ils ont simplement décompresser et de fournir un haut niveau de package.

Par exemple, dire que le colis est "virtualenv", vous auriez à la fin avec l' /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 /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg qui peut être un répertoire ou zippé œuf. Pip fait quelque chose de similaire, mais ne pas utiliser des oeufs et au lieu de placer le haut niveau, directement dans l' lib répertoire.

J'ai peut être désactivé sur les chemins, mais le point est que chaque méthode prend en compte les différents besoins. C'est pourquoi des outils comme virtualenv sont utiles, car ils vous permettent de sandbox de votre Python bibliothèques telles que vous pouvez avoir n'importe quelle combinaison vous avez besoin des bibliothèques et des versions.

Setuptools permet également d'installer les paquets que multiversion ce qui signifie qu'il n'est pas un singulier module_name.egg-link créé. Pour importer les paquets dont vous avez besoin pour utiliser pkg_resources et l' __import__ fonction.

Pour en revenir à votre question initiale, si vous êtes heureux avec le système de python et un plan sur l'utilisation de virtualenv et pip pour créer des environnements favorables pour les différentes applications, puis l'installation de virtualenv et / ou pip au niveau du système à l'aide de apt-get semble tout à fait pertinent. Un mot de prudence cependant, c'est que si vous envisagez sur la mise à niveau de vos distributions Python, qui peut avoir un effet d'entraînement par le biais de votre virtualenvs si vous renvoient à votre système de packages de site.

Je dois aussi mentionner qu'aucune de ces options est intrinsèquement meilleure que les autres. Ils prennent tout simplement des approches différentes. À l'aide de la version du système est un excellent moyen pour installer Python applications, mais il peut être très difficile à développer en Python. Facile à installer et setuptools est très pratique dans un monde sans virtualenv, mais si vous avez besoin d'utiliser des versions différentes de la même bibliothèque, puis elle aussi devenir assez lourd. Pip et virtualenv vraiment agir plus comme une machine virtuelle. Au lieu de prendre soin d'installer des choses à côté, il vous suffit de créer un tout nouvel environnement. L'inconvénient ici est que 30+ virtualenvs plus tard, vous pourriez avoir utilisé très peu d'espace disque et encombré de votre système de fichiers.

Comme vous pouvez le voir, avec de nombreuses options, il est difficile de dire quelle est la méthode à utiliser, mais avec un peu de recherche dans votre cas, vous devriez être capable de trouver une méthode qui fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X