Pregunta

Leí algo sobre archivos .egg y los noté en mi directorio lib, pero ¿cuáles son las ventajas/desventajas de usarlos como desarrollador?

¿Fue útil?

Solución

Desde el Comunidad del kit de aplicaciones empresariales de Python:

"Los huevos son para las pitones como los tarros son para Java..."

Los huevos de Python son una forma de agrupar información adicional con un proyecto de Python, que permite que las dependencias del proyecto se verifiquen y satisfagan en tiempo de ejecución, además de permitir que los proyectos proporcionen complementos para otros proyectos.Hay varios formatos binarios que encarnan los huevos, pero el más común es el formato de archivo zip '.Egg', porque es conveniente para distribuir proyectos.Todos los formatos admiten que incluyen datos específicos del paquete, metadatos de todo el proyecto, extensiones C y código Python.

Los principales beneficios de los huevos de pitón son:

  • Habilitan herramientas como el administrador de paquetes Python "Easy Install"

  • Los archivos .Egg son un formato de "instalación cero" para un paquete Python;No se requiere un paso de compilación o instalación, simplemente colóquelos en PythonPath o Sys.path y úselos (puede requerir el tiempo de ejecución instalado si se utilizan extensiones de C o archivos de datos)

  • Pueden incluir metadatos de paquetes, como los otros huevos de los que dependen.

  • Permiten que "paquetes de espacio de nombres" (paquetes que solo contienen otros paquetes) se dividen en distribuciones separadas (por ejemplo,zope., retorcido., pico.* Los paquetes se pueden distribuir como huevos separados, a diferencia de los paquetes normales que siempre deben colocarse en el mismo directorio principal.Esto permite que los paquetes monolíticos enormes se distribuyan como componentes separados).

  • Permiten que las aplicaciones o bibliotecas especifiquen la versión necesaria de una biblioteca, para que pueda, por ejemplo,Requerir ("Twisted-Internet> = 2.0") antes de hacer una importación Twisted.Internet.

  • Son un gran formato para distribuir extensiones o complementos a aplicaciones y marcos extensibles (como TRAC, que utiliza huevos para complementos a partir de 0.9b1), porque el tiempo de ejecución de huevos proporciona API simples para localizar huevos y encontrar sus puntos de entrada anunciados (similares (similares a el concepto de "punto de extensión" de Eclipse).

  • También hay otros beneficios que pueden provenir de tener un formato estandarizado, similar a los beneficios del formato "JAR" de Java.

-Adán

Otros consejos

Un óvulo por sí solo no es mejor que una liberación adecuada de la fuente.Lo bueno es el manejo de dependencias.Al igual que los paquetes debian o rpm, puedes decir que dependes de otros huevos y se instalarán automáticamente (a través de pypi.python.org).

Un segundo comentario:el formato del huevo en sí es un formato empaquetado binario.Los paquetes normales de Python que constan solo de código Python se distribuyen mejor como "versiones fuente", es decir, "python setup.py sdist", que da como resultado un .tar.gz.Estos también se denominan comúnmente "huevos" cuando se cargan en pypi.

Donde necesitas huevos binarios:cuando incluyes alguna extensión de código C.Entonces necesitarás varios huevos binarios (uno Unix de 32 bits, uno de Windows, etc.).

Los huevos son una forma bastante buena de distribuir aplicaciones de Python.Piense en ello como un archivo .deb independiente de la plataforma que instalará todas las dependencias y demás.La ventaja es que es fácil de usar para el usuario final.La desventaja es que puede resultar engorroso empaquetar su aplicación como un archivo .egg.

También deberías ofrecer un medio de instalación alternativo además de .eggs.Hay algunas personas a las que no les gusta usar huevos porque no les gusta la idea de que un programa de software instale el software que quiera.Suelen ser del tipo administrador de sistemas.

Los archivos .egg son básicamente una buena forma de implementar su aplicación Python.Puedes considerarlo como algo así como archivos .jar para Java.

Más información aquí.

Hagas lo que hagas, no dejes de distribuir tu aplicación, también, como tarball, ya que es el formato empaquetable más fácil para sistemas operativos con un sistema de paquetes.

Para programas simples de Python, probablemente no necesites usar huevos.Distribuir los archivos .py sin formato debería ser suficiente;es como distribuir archivos fuente para GNU/Linux.También puede utilizar los distintos "empaquetadores" del sistema operativo (como py2exe o py2app) para crear archivos .exe, .dmg u otros archivos para diferentes sistemas operativos.

Programas más complejos, p.Django prácticamente requiere huevos debido a los diversos módulos y dependencias necesarios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top