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
setuptools
no 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:
.whl
archivos), no solo en PyPI, sino también en repositorios de terceros como los Paquetes de extensión de Christoph Gohlke para Windows .pip
puede manejar ruedas;easy_install
no puedo.virtualenv
) se han convertido en una herramienta muy importante y destacada (y recomendada en los documentos oficiales ); incluyenpip
fuera de la caja, pero ni siquiera funcionan correctamente coneasy_install
.distribute
paquete que incluyeeasy_install
ya no se mantiene. Sus mejorassetuptools
se fusionaron nuevamentesetuptools
. Intentar instalardistribute
solo se instalará en susetuptools
lugar.easy_install
en sí solo es cuasi mantenido.pip
solía ser inferior a laeasy_install
instalación desde un árbol fuente desempaquetado, desde un repositorio DVCS, etc., han desaparecido hace mucho tiempo; que puedapip install .
,pip install git+https://
.pip
viene con los paquetes oficiales Python 2.7 y 3.4+ de python.org, ypip
se incluye un bootstrap por defecto si compila desde la fuente.pip
"el programa instalador preferido".pip
largo de los años se han agregado otras características nuevas que nunca estarán disponibleseasy_install
. Por ejemplo,pip
facilita 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_install
en 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 pip
es una mala idea; es solo para OS X 10.5-10.8 que desea hacer esto). Además, 10.5-10.8 incluyereadline
de una manera queeasy_install
sabe cómo esquivar peropip
no lo hace, por lo que también deseasudo easy_install readline
si quieres actualizar eso.fuente
pip
en el tiempo intermedio.easy_install -U pip
o 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_install
fue 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_install
ya no funciona con envs virtuales?De la propia introducción de Ian Bicking a pip :
fuente
easy_install pip
oversudo apt-get install python-pip
?sudo apt-get
Ubuntu / Debian, se instalarán paquetes de Python,/usr/lib/python/dist-packages
mientras quesudo pip
osudo easy_install
se instalarán/local/lib/python/site-packages
y, 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 epip
instalar 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
distribute
está fusionando consetuptools
.pip
trabajos.packaging
(distutils2
) no está incluido en Python 3.3 .Dos razones, puede haber más:
pip proporciona un
uninstall
comandoSi 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
pipreqs
para 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
wheel
formato 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:
setuptools
ha absorbidodistribute
en lugar de al revés, como algunos pensaban.setuptools
está actualizado con los últimosdistutils
cambios y el formato de la rueda. Por lo tanto,easy_install
ypip
está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_install
todavía es lo que ha sido durante mucho tiempo y pip lo mejora enormemente.easy_install
es solo una partesetuptools
y 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é
wheel
creando un instalador de OS X paraPySide
usar enwheel
lugar de huevos. Volveremos e informaremos sobre esto.aclamaciones - Chris
Una actualización rápida:
La transición a
wheel
casi 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
distutils
porsetuptools
. 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_install
lugar depip
, o tengo que extraer los códigos fuente directamente.Para el paquete
GitPython
, la versión enpip
es demasiado antigua, que es0.1.7
, mientras que la deeasy_install
es la última que es0.3.2.rc1
.Estoy usando
Python 2.7.8
. No estoy seguro sobre el mecanismo subyacente deeasy_install
ypip
, pero al menos las versiones de algunos paquetes pueden ser diferentes entre sí, y a veceseasy_install
es la que tiene una versión más nueva.fuente