Pregunta ¿Por qué usar pip sobre easy_install? [cerrado]


UN Pío lee:

No use easy_install, a menos que   como apuñalarse en la cara.   Use pip.

¿Por qué usar pip sobre easy_install? No el la culpa recae en PyPI y los autores del paquete principalmente? Si un autor carga el paquete de código fuente (por ejemplo: archivos perdidos, no setup.py) a PyPI, entonces tanto pip como easy_install fallarán. Aparte de las diferencias cosméticas, ¿por qué la gente de Python parece (como en el tweet anterior) fuertemente favor de pip sobre easy_install?

(Supongamos que estamos hablando de easy_install del paquete Distribute, que la comunidad mantiene)


883
2017-07-10 18:35


origen


Respuestas:


Muchas de las respuestas aquí están desactualizadas para 2015 (aunque el inicialmente aceptado de Daniel Roseman no es). Aquí está el estado actual de las cosas:

  • Los paquetes binarios ahora se distribuyen como ruedas (.whl archivos), no solo en PyPI, sino en repositorios de terceros como Paquetes de extensión de Christoph Gohlke para Windows. pip puede manejar ruedas; easy_install no poder.
  • Entornos virtuales (que vienen incorporados con 3.4, o pueden agregarse a 2.6 + / 3.1 + con virtualenv) se han convertido en una herramienta muy importante y prominente (y se recomienda en los documentos oficiales); Incluyen pip fuera de la caja, pero ni siquiera funcionan correctamente con easy_install.
  • los distribute paquete que incluye easy_install ya no se mantiene. Sus mejoras sobre setuptools se fusionó de nuevo en setuptools. Intentando instalar distribute simplemente instalará setuptools en lugar.
  • easy_install en sí mismo solo es cuasi mantenido.
  • Todos los casos donde pip solía ser inferior a easy_install-instalar desde un árbol fuente desempaquetado, desde un repositorio DVCS, etc.- se han ido hace mucho tiempo; usted puede pip install ., pip install git+https://.
  • pip viene con los paquetes oficiales de Python 2.7 y 3.4+ de python.org, y un pip bootstrap está incluido por defecto si construye desde el código fuente.
  • Los diversos fragmentos incompletos de documentación sobre la instalación, el uso y la creación de paquetes han sido reemplazados por Guía de usuario de empaquetado de Python. La propia documentación de Python Instalar los módulos de Python ahora se remite a esta guía del usuario y explícitamente llama pip como "el programa de instalador preferido".
  • Se han agregado otras características nuevas a pip con los años que nunca estará en easy_install. Por ejemplo, pip hace que sea fácil clonar 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 conozco para usar easy_install en 2015 es el caso especial de usar las versiones de Python preinstaladas de Apple con OS X 10.5-10.8. Desde el 10.5, Apple ha incluido easy_install, pero a partir de 10.10 todavía no incluyen pip. Con 10.9+, todavía deberías usar get-pip.py, pero para 10.5-10.8, esto tiene algunos problemas, por lo que es más fácil sudo 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 incluye readline de manera que easy_install sabe cómo arrullar, pero pip no, así que también quieres sudo easy_install readline si quieres actualizar eso.


260
2018-05-23 03:10



De la propia propiedad de Ian Bicking introducción a pip:

pip fue escrito originalmente para mejorar en easy_install de las siguientes maneras

  • Todos los paquetes se descargan antes de la instalación. La instalación parcialmente completada no ocurre como resultado.
  • Se tiene cuidado de presentar resultados útiles en la consola.
  • Los motivos de las acciones se mantienen al tanto. Por ejemplo, si se está instalando un paquete, pip realiza un seguimiento de por qué se requería ese paquete.
  • Los mensajes de error deberían ser útiles.
  • El código es relativamente conciso y coherente, por lo que es más fácil de usar mediante programación.
  • Los paquetes no tienen que instalarse como archivos de huevos, se pueden instalar planos (manteniendo los metadatos del huevo).
  • Soporte nativo para otros sistemas de control de versiones (Git, Mercurial y Bazar)
  • Desinstalación de paquetes.
  • Simple para definir conjuntos fijos de requisitos y reproducir confiablemente un conjunto de paquetes.

581
2017-07-10 19:32



Otra razón, aún no mencionada, para favorecer pepita es porque es el nuevo calor y se seguirá utilizando en el futuro.

La infografía a continuación, de la Estado actual del empaquetado sección en el La Guía del autoestopista para empaque v1.0-muestra que setuptools / easy_install desaparecerá en el futuro.

enter image description here

Aquí hay otra infografía de distribuir la documentación mostrando que Herramientas de configuración y easy_install será reemplazado por el nuevo hotness-distribuir y pepita. Mientras pepita sigue siendo el nuevo picor, Distribuir combinado con Herramientas de configuración en 2013 con el lanzamiento de Herramientas de configuración v0.7.

enter image description here


241
2018-01-26 15:19



Dos razones, puede haber más:

  1. pip proporciona una uninstall mando

  2. si una instalación falla en el medio, pip lo dejará en un estado limpio.


163
2017-07-10 18:56



REQUISITOS archivos.

En serio, uso esto junto con virtualenv todos los días.


TUTORIAL DE GESTIÓN DE LA DEPENDENCIA RÁPIDA, CHICOS

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 a partir de un conjunto muy específico de paquetes y compartir esa base de código con otros.

De la documentación de Heroku https://devcenter.heroku.com/articles/python

Usted crea un entorno virtual y configura su caparazón para usarlo. (instrucciones bash / * nix)

virtualenv env
source env/bin/activate

Ahora todos los scripts de Python ejecutados con este shell usará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.

pip install flask

Ahora puede volcar la información sobre qué paquetes están instalados con

pip freeze > requirements.txt

Si marcó ese archivo en el control de la versión, cuando otra persona obtiene su código, puede configurar su propio entorno virtual e instalar todas las dependencias con:

pip install -r requirements.txt

Cada vez que puedes automatizar el tedio de esta manera es increíble.


110
2017-07-11 13:28



pip no instalará paquetes binarios y no está bien probado en Windows.

Como Windows no viene con un compilador por defecto, pip a menudo hipocresía ser utilizado allí. Instalación fácil poder instalar paquetes binarios para Windows.


78
2017-07-11 18:05



ACTUALIZAR: setuptools ha absorbido distribute a diferencia de al revés, como algunos pensaban. setuptools está actualizado con la última distutils cambios y el formato de la rueda. Por lo tanto, easy_install y pip 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


71
2018-02-22 20:22



Como una adición a la respuesta de Fuzzyman:

pip no instalará paquetes binarios y no está bien probado en Windows.

Como Windows no viene con un compilador por defecto, a menudo no se puede   usado allí. easy_install puede instalar paquetes binarios para Windows.

Aquí hay un truco en Windows:

  • puedes usar easy_install <package> instalar paquetes binarios para evitar construir un binario

  • puedes usar pip uninstall <package> incluso si usó easy_install.

Esto es solo una solución alternativa que funciona para mí en Windows. En realidad, siempre uso pip si no hay binarios involucrados.

Ver el pip doku actual: http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install

Preguntaré en la lista de correo qué está planeado para eso.

Aquí está la última actualización:

La nueva forma admitida de instalar binarios va a ser wheel! Todavía no está en el estándar, pero casi. La versión actual sigue siendo alfa: 1.0.0a1

https://pypi.python.org/pypi/wheel

http://wheel.readthedocs.org/en/latest/

Voy a probar wheel creando un instalador OS X para PySide utilizando wheel en lugar de huevos Volveremos e informaremos acerca de esto.

aplausos - Chris

Una actualización rápida:

La transición a wheel casi ha terminado. La mayoría de los paquetes son compatibles wheel.

Prometí construir ruedas para PySidey lo hice el verano pasado ¡Funciona genial!

INSINUACIÓN: Algunos desarrolladores han fallado hasta el momento para respaldar el formato de rueda, simplemente porque se olvidan de reemplazar distutils por setuptools. A menudo, es fácil convertir dichos paquetes reemplazando esta palabra en setup.py.


23
2017-11-27 01:39



Acabo de conocer un caso especial que tuve que usar easy_install en lugar de pip, o tengo que extraer los códigos fuente directamente.

Para el paquete GitPython, la versión en pip es muy viejo, que es 0.1.7, mientras que el de easy_install es el último que es 0.3.2.rc1.

Estoy usando Python 2.7.8. No estoy seguro sobre el mecanismo subyacente de easy_install y pip, pero al menos las versiones de algunos paquetes pueden ser diferentes entre sí, y algunas veces easy_install es el que tiene una versión más nueva.

easy_install GitPython

2
2017-09-25 03:22