Un tweet dice:
No uses easy_install, a menos que te guste apuñalarte en la cara. Use pepita.
¿Por qué usar pip sobre easy_install? ¿No es la culpa principalmente de PyPI y los autores de paquetes ? Si un autor carga un tarball fuente de basura (por ejemplo: archivos faltantes, no setup.py) a PyPI, entonces pip y easy_install fallarán. Además de las diferencias estéticas, ¿por qué las personas de Python (como en el tweet anterior) parecen favorecer fuertemente a pip sobre easy_install?
(Supongamos que estamos hablando de easy_install desde el paquete Distribute, que es mantenido por la comunidad)
python
pip
setuptools
easy-install
pypi
Sridhar Ratnakumar
fuente
fuente

setuptoolsno es parte de Python 3 porque sípip, y esa es la única parte que los usuarios finales necesitan. (Y los desarrolladores que quieran distribuir en PyPI obviamente puedenpip install setuptools, y todo lo que quieran)Respuestas:
Muchas de las respuestas aquí están desactualizadas para 2015 (aunque la respuesta inicialmente aceptada de Daniel Roseman no lo está). Aquí está el estado actual de las cosas:
.whlarchivos), no solo en PyPI, sino también en repositorios de terceros como los Paquetes de extensión de Christoph Gohlke para Windows .pippuede manejar ruedas;easy_installno puedo.virtualenv) se han convertido en una herramienta muy importante y destacada (y recomendada en los documentos oficiales ); incluyenpipfuera de la caja, pero ni siquiera funcionan correctamente coneasy_install.distributepaquete que incluyeeasy_installya no se mantiene. Sus mejorassetuptoolsse fusionaron nuevamentesetuptools. Intentar instalardistributesolo se instalará en susetuptoolslugar.easy_installen sí solo es cuasi mantenido.pipsolía ser inferior a laeasy_installinstalación desde un árbol fuente desempaquetado, desde un repositorio DVCS, etc., han desaparecido hace mucho tiempo; que puedapip install .,pip install git+https://.pipviene con los paquetes oficiales Python 2.7 y 3.4+ de python.org, ypipse incluye un bootstrap por defecto si compila desde la fuente.pip"el programa instalador preferido".piplargo de los años se han agregado otras características nuevas que nunca estarán disponibleseasy_install. Por ejemplo,pipfacilita la clonación de los paquetes de su sitio al crear un archivo de requisitos y luego instalarlo con un solo comando en cada lado. O para convertir su archivo de requisitos a un repositorio local para utilizarlo en el desarrollo interno. Y así.La única buena razón que sé usar
easy_installen 2015 es el caso especial de usar las versiones preinstaladas de Python de Apple con OS X 10.5-10.8. Desde 10.5, Apple ha incluidoeasy_install, pero a partir de 10.10 todavía no lo incluyenpip. Con 10.9+, aún debe usarget-pip.py, pero para 10.5-10.8, esto tiene algunos problemas, por lo que es más fácilsudo easy_install pip. (En general,easy_install pipes una mala idea; es solo para OS X 10.5-10.8 que desea hacer esto). Además, 10.5-10.8 incluyereadlinede una manera queeasy_installsabe cómo esquivar peropipno lo hace, por lo que también deseasudo easy_install readlinesi quieres actualizar eso.fuente
pipen el tiempo intermedio.easy_install -U pipo noeasy_install3 -U pip.easy_install" Esta no fue mi experiencia, aunque no lo he intentado en mucho tiempo desde que las ruedas ahora dominan. Pero los binarios de Christoph Gohlke solían distribuirse como huevos ejecutables. Visitarloseasy_installfue la única forma en que pude instalar esos paquetes en un entorno virtual, y nunca me causó ningún ardor de estómago. ¿De qué maneraeasy_installya no funciona con envs virtuales?De la propia introducción de Ian Bicking a pip :
fuente
easy_install pipoversudo apt-get install python-pip?sudo apt-getUbuntu / Debian, se instalarán paquetes de Python,/usr/lib/python/dist-packagesmientras quesudo piposudo easy_installse instalarán/local/lib/python/site-packagesy, desafortunadamente, los paquetes Debian / Ubuntu a menudo tienen nombres diferentes con los que pip no está familiarizado. La mejor solución en mi humilde opinión es utilizar virtualenv epipinstalar sus paquetes allí.Otra razón, hasta ahora no mencionada, para favorecer el pip es porque es el nuevo calor y continuará usándose en el futuro.
La siguiente infografía, de la sección Estado actual de empaquetado en la Guía del autoestopista para empaques v1.0, muestra que setuptools / easy_install desaparecerá en el futuro.
Aquí hay otra infografía de distribuir de la documentación que demuestra que Setuptools y easy_install será reemplazado por el nuevo hotness- distribuir y PIP . Si bien pip sigue siendo el nuevo atractivo, Distribute se fusionó con Setuptools en 2013 con el lanzamiento de Setuptools v0.7.
fuente
distributeestá fusionando consetuptools.piptrabajos.packaging(distutils2) no está incluido en Python 3.3 .Dos razones, puede haber más:
pip proporciona un
uninstallcomandoSi una instalación falla en el medio, pip lo dejará en un estado limpio.
fuente
REQUISITOS archivos.
En serio, uso esto junto con virtualenv todos los días.
TUTORIAL DE GESTIÓN RÁPIDA DE LA DEPENDENCIA, SIGUIENTE
Los archivos de requisitos le permiten crear una instantánea de todos los paquetes que se han instalado a través de pip. Al encapsular esos paquetes en un entorno virtual, puede hacer que su base de código funcione con un conjunto de paquetes muy específico y compartir esa base de código con otros.
De la documentación de Heroku https://devcenter.heroku.com/articles/python
Creas un entorno virtual y configuras tu shell para usarlo. (instrucciones bash / * nix)
Ahora todos los scripts de Python que se ejecutan con este shell utilizarán los paquetes y la configuración de este entorno. Ahora puede instalar un paquete localmente en este entorno sin necesidad de instalarlo globalmente en su máquina.
Ahora puede volcar la información sobre qué paquetes están instalados con
Si marcó ese archivo en el control de versiones, cuando otra persona obtiene su código, puede configurar su propio entorno virtual e instalar todas las dependencias con:
Cada vez que puede automatizar tedio como este es increíble.
fuente
pipreqspara obtener el archivo require.txt. Solo proporcionará las bibliotecas relacionadas con el proyecto donde está llamando pipreqs, por lo que require.txt se basará en el proyecto y no en virtualenv.pip no instalará paquetes binarios y no está bien probado en Windows.
Como Windows no viene con un compilador por defecto, pip a menudo no se puede usar allí. easy_install puede instalar paquetes binarios para Windows.
fuente
wheelformato de distribución binario lo hace posible. Muchos paquetes de terceros con módulos de extensión C ahora también se distribuyen como ruedas construidas para varias plataformas y pip puede instalarlos automáticamente. Ver, por ejemplo, pythonwheels.comACTUALIZACIÓN:
setuptoolsha absorbidodistributeen lugar de al revés, como algunos pensaban.setuptoolsestá actualizado con los últimosdistutilscambios y el formato de la rueda. Por lo tanto,easy_installypipestán más o menos en pie de igualdad ahora.Fuente: http://pythonhosted.org/setuptools/merge-faq.html#why-setuptools-and-not-distribute-or-another-name
fuente
easy_installtodavía es lo que ha sido durante mucho tiempo y pip lo mejora enormemente.easy_installes solo una partesetuptoolsy posiblemente una de las peores, razón por la cual pip pretende reemplazarlo.Como una adición a la respuesta de fuzzyman:
Aquí hay un truco en Windows:
puede usar
easy_install <package>para instalar paquetes binarios para evitar construir un binariopuedes usar
pip uninstall <package>incluso si usaste easy_install.Esto es solo una solución que me funciona en Windows. En realidad siempre uso pip si no hay binarios involucrados.
Vea el pip doku actual: http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install
Aquí está la última actualización:
¡La nueva forma compatible de instalar binarios será
wheel! Todavía no está en el estándar, pero casi. La versión actual sigue siendo alfa: 1.0.0a1https://pypi.python.org/pypi/wheel
http://wheel.readthedocs.org/en/latest/
Probaré
wheelcreando un instalador de OS X paraPySideusar enwheellugar de huevos. Volveremos e informaremos sobre esto.aclamaciones - Chris
Una actualización rápida:
La transición a
wheelcasi ha terminado. La mayoría de los paquetes son compatibleswheel.Prometí construir ruedas
PySide, y lo hice el verano pasado. ¡Funciona genial!PISTA: Unos desarrolladores fracasado hasta ahora para apoyar el formato de la rueda, simplemente porque se olvidan de sustituir
distutilsporsetuptools. A menudo, es fácil convertir dichos paquetes reemplazando esta sola palabrasetup.py.fuente
Acabo de encontrar un caso especial que tuve que usar en
easy_installlugar depip, o tengo que extraer los códigos fuente directamente.Para el paquete
GitPython, la versión enpipes demasiado antigua, que es0.1.7, mientras que la deeasy_installes la última que es0.3.2.rc1.Estoy usando
Python 2.7.8. No estoy seguro sobre el mecanismo subyacente deeasy_installypip, pero al menos las versiones de algunos paquetes pueden ser diferentes entre sí, y a veceseasy_installes la que tiene una versión más nueva.fuente