Un tweet se lit comme suit:
N'utilisez pas easy_install, sauf si vous aimez vous poignarder au visage. Utilisez pip.
Pourquoi utiliser pip sur easy_install? La faute n'est-elle pas principalement due aux auteurs de PyPI et de packages ? Si un auteur télécharge l'archive tar source de merde (par exemple: fichiers manquants, pas de setup.py) sur PyPI, alors pip et easy_install échoueront. À part les différences esthétiques, pourquoi les gens de Python (comme dans le tweet ci-dessus) semblent-ils fortement favoriser pip par rapport à easy_install?
(Supposons que nous parlons d'easy_install à partir du package Distribute, qui est géré par la communauté)
python
pip
setuptools
easy-install
pypi
Sridhar Ratnakumar
la source
la source
setuptools
ne fait pas partie de Python 3 parce quepip
c'est le cas, et c'est la seule partie dont les utilisateurs finaux ont besoin. (Et les développeurs qui veulent distribuer sur PyPI peuvent évidemmentpip install setuptools
, et tout ce qu'ils peuvent vouloir.)Réponses:
Beaucoup de réponses ici sont obsolètes pour 2015 (bien que celle initialement acceptée de Daniel Roseman ne le soit pas). Voici l'état actuel des choses:
.whl
fichiers) - non seulement sur PyPI, mais dans des référentiels tiers comme les packages d'extension de Christoph Gohlke pour Windows .pip
peut gérer les roues;easy_install
ne peux pas.virtualenv
) sont devenus un outil très important et important (et recommandé dans les documents officiels ); ils incluentpip
hors de la boîte, mais ne fonctionnent même pas correctement aveceasy_install
.distribute
package incluseasy_install
n'est plus maintenu. Ses améliorations ontsetuptools
été fusionnéessetuptools
. Essayer d'installerdistribute
ne fera qu'installer à lasetuptools
place.easy_install
elle-même n'est que quasi-maintenue.pip
auparavant étaient inférieurs à - l'easy_install
installation à partir d'une arborescence source non compressée, d'un dépôt DVCS, etc. - sont révolus depuis longtemps; vous pouvezpip install .
,pip install git+https://
.pip
est livré avec les packages officiels Python 2.7 et 3.4+ de python.org, et unpip
bootstrap est inclus par défaut si vous construisez à partir des sources.pip
"le programme d'installation préféré".pip
fil des ans et ne seront jamais disponibleseasy_install
. Par exemple,pip
il est facile de cloner vos packages de site en créant un fichier d'exigences, puis en l'installant avec une seule commande de chaque côté. Ou pour convertir votre fichier d'exigences en un référentiel local à utiliser pour le développement en interne. Etc.La seule bonne raison que je sache utiliser
easy_install
en 2015 est le cas particulier de l'utilisation des versions Python préinstallées d'Apple avec OS X 10.5-10.8. Depuis 10.5, Apple a incluseasy_install
, mais à partir de 10.10 ils ne comprennent toujours paspip
. Avec 10.9+, vous devriez toujours utiliserget-pip.py
, mais pour 10.5-10.8, cela a quelques problèmes, donc c'est plus facilesudo easy_install pip
. (En général,easy_install pip
c'est une mauvaise idée; ce n'est que pour OS X 10.5-10.8 que vous voulez faire cela.) De plus, 10.5-10.8 inclutreadline
d'une manière quieasy_install
sait se déplacer maispip
pas, donc vous voulez aussisudo easy_install readline
si vous voulez mettre à jour cela.la source
pip
dans l'intervalle.easy_install -U pip
oueasy_install3 -U pip
.easy_install
" Ce n'était pas mon expérience, même si je n'ai pas essayé depuis un certain temps depuis que les roues dominent maintenant. Mais les binaires de Christoph Gohlke étaient auparavant distribués sous forme d'oeufs exécutables. Faire appeleasy_install
à eux était le seul moyen de faire installer ces packages dans un environnement virtuel, et cela ne m'a jamais causé de brûlures d'estomac. De quelle manière neeasy_install
fonctionne plus avec les envs virtuels?De l' introduction de Ian Bicking à pip :
la source
easy_install pip
plussudo apt-get install python-pip
?sudo apt-get
Ubuntu / Debian, les packages Python seront installés dans ou/usr/lib/python/dist-packages
alors ils s'installeront dans et malheureusement les packages Debian / Ubuntu ont souvent des noms différents avec lesquels pip n'est pas familier. La meilleure solution à mon humble avis est d'utiliser virtualenv et d'y installer vos packages.sudo pip
sudo easy_install
/local/lib/python/site-packages
pip
Une autre raison - pour l'instant non mentionnée - de favoriser le pip est parce que c'est la nouvelle chaleur et continuera d'être utilisée à l'avenir.
L'infographie ci-dessous - de la section État actuel de l'emballage dans le Guide de l'auto-stoppeur de l'emballage v1.0 - montre que setuptools / easy_install disparaîtra à l'avenir.
Voici une autre infographie de la documentation de distribution montrant que Setuptools et easy_install seront remplacés par la nouvelle hotness - distribution et pip . Alors que pip est toujours la nouvelle nouveauté, Distribute a fusionné avec Setuptools en 2013 avec la sortie de Setuptools v0.7 .
la source
distribute
fusionne avecsetuptools
.pip
travaux.packaging
(distutils2
) n'est pas inclus dans Python 3.3 .Deux raisons, il peut y en avoir plus:
pip fournit une
uninstall
commandesi une installation échoue au milieu, pip vous laissera dans un état propre.
la source
Fichiers EXIGENCES.
Sérieusement, je l'utilise tous les jours avec virtualenv.
TUTORIEL DE GESTION RAPIDE DES DÉPENDANCES, PERSONNES
Les fichiers d'exigences vous permettent de créer un instantané de tous les packages qui ont été installés via pip. En encapsulant ces packages dans un environnement virtuel, vous pouvez faire fonctionner votre base de code sur un ensemble très spécifique de packages et partager cette base de code avec d'autres.
De la documentation de Heroku https://devcenter.heroku.com/articles/python
Vous créez un environnement virtuel et configurez votre shell pour l'utiliser. (instructions bash / * nix)
Désormais, tous les scripts python exécutés avec ce shell utiliseront les packages et la configuration de cet environnement. Vous pouvez maintenant installer un package localement dans cet environnement sans avoir besoin de l'installer globalement sur votre machine.
Vous pouvez maintenant vider les informations sur les packages installés avec
Si vous avez vérifié ce fichier dans le contrôle de version, quand quelqu'un d'autre obtient votre code, il peut configurer son propre environnement virtuel et installer toutes les dépendances avec:
Chaque fois que vous pouvez automatiser l'ennui comme ça, c'est génial.
la source
pipreqs
pour obtenir le fichier requirements.txt. Il ne donnera que les bibliothèques liées au projet où vous appelez pipreqs, de sorte que requirements.txt sera basé sur le projet et non sur virtualenv.pip n'installera pas de paquets binaires et n'est pas bien testé sur Windows.
Comme Windows ne vient pas avec un compilateur par défaut, pip ne peut souvent pas être utilisé là-bas. easy_install peut installer des packages binaires pour Windows.
la source
wheel
format de distribution binaire rend cela possible. De nombreux packages tiers avec des modules d'extension C sont désormais également distribués sous forme de roues conçues pour diverses plates-formes et pip peut les installer automatiquement. Voir, par exemple, pythonwheels.comMISE À JOUR:
setuptools
a absorbédistribute
par opposition à l'inverse, comme certains le pensaient.setuptools
est à jour avec les dernièresdistutils
modifications et le format de roue. Par conséquent,easy_install
etpip
sont plus ou moins sur un pied d'égalité maintenant.Source: http://pythonhosted.org/setuptools/merge-faq.html#why-setuptools-and-not-distribute-or-another-name
la source
easy_install
c'est toujours ce que ça fait depuis longtemps et pip l'améliore énormément.easy_install
est juste une partiesetuptools
et sans doute l'un des pires, c'est pourquoi pip vise à le remplacer.En complément de la réponse de Fuzzyman:
Voici une astuce sur Windows:
vous pouvez utiliser
easy_install <package>
pour installer des packages binaires pour éviter de construire un binairevous pouvez utiliser
pip uninstall <package>
même si vous avez utilisé easy_install.Ceci est juste une solution de contournement qui fonctionne pour moi sur Windows. En fait, j'utilise toujours pip si aucun binaire n'est impliqué.
Voir le pip doku actuel: http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install
Voici la dernière mise à jour:
La nouvelle façon prise en charge pour installer les binaires va être
wheel
! Ce n'est pas encore dans la norme, mais presque. La version actuelle est toujours un alpha: 1.0.0a1https://pypi.python.org/pypi/wheel
http://wheel.readthedocs.org/en/latest/
Je vais tester
wheel
en créant un programme d'installation OS X àPySide
utiliser à lawheel
place des œufs. Je reviendrai et ferai un rapport à ce sujet.cheers - Chris
Une mise à jour rapide:
La transition vers
wheel
est presque terminée. La plupart des packages prennent en chargewheel
.J'ai promis de construire des roues pour
PySide
, et je l'ai fait l'été dernier. Fonctionne très bien!CONSEIL: Quelques développeurs n'ont pas réussi jusqu'à présent à prendre en charge le format de roue, simplement parce qu'ils oublient de le remplacer
distutils
parsetuptools
. Souvent, il est facile de convertir de tels packages en remplaçant ce seul mot danssetup.py
.la source
Je viens de rencontrer un cas spécial que j'ai dû utiliser à la
easy_install
placepip
, ou je dois tirer directement les codes source.Pour le package
GitPython
, la version depip
est trop ancienne, ce qui est le cas0.1.7
, tandis que celle deeasy_install
est la plus récente0.3.2.rc1
.J'utilise
Python 2.7.8
. Je ne suis pas sûr du mécanisme de calque sous-jacent deeasy_install
etpip
, mais au moins les versions de certains packages peuvent être différentes les unes des autres, et c'est parfoiseasy_install
celle avec une version plus récente.la source