2010-01-12 13 views
383

Soy nuevo en Python y solo estoy tratando de entender cómo funcionan sus paquetes. Presumiblemente, los "huevos" son algún tipo de mecanismo de empaquetado, pero ¿cuál sería una descripción general rápida del papel que desempeñan y quizás alguna información sobre por qué son útiles y cómo crearlos?¿Qué es un huevo de Python?

Respuesta

423

Nota: Egg packaging has been superseded by Wheel packaging.

mismo concepto que un archivo .jar en Java, que es un archivo .zip con algunos archivos de metadatos a llamarse .egg, para la distribución de código como paquetes.

Specifically: The Internal Structure of Python Eggs

A "huevo Python" es una estructura lógica que realiza la liberación de una versión específica de un proyecto Python, que comprende su código, los recursos, y metadatos. Hay múltiples formatos que se pueden usar para codificar físicamente un huevo Python y otros pueden desarrollarse. Sin embargo, un principio clave de los huevos de Python es que deben ser detectables y importables. Es decir, debería ser posible que una aplicación Python a descubra de manera fácil y eficiente qué huevos están presentes en un sistema, y ​​ para garantizar que los contenidos de los huevos deseados sean importados.

El formato .egg está bien adaptado a la distribución y la fácil desinstalación o actualizaciones de código, ya que el proyecto es esencialmente auto-contenida dentro de un solo archivo o directorio, sin mezcla con código o recursos de cualquier otro proyectos. También hace posible tener versiones múltiples de un proyecto instaladas simultáneamente, de modo que los programas individuales puedan seleccionar las versiones que desean usar.

32

El archivo .egg es un formato de distribución para paquetes de Python. Es solo una alternativa a una distribución de código fuente o Windows exe. Pero tenga en cuenta que para Python puro, el archivo .egg es completamente multiplataforma.

El archivo .egg en sí es esencialmente un archivo .zip. Si cambia la extensión a "zip", verá que tendrá carpetas dentro del archivo.

Además, si usted tiene un archivo .egg, se puede instalar como un paquete utilizando easy_install

Ejemplo: para crear un archivo .egg para un directorio decir mymath que a su vez puede tener varios scripts de Python, haga lo siguiente paso:

# setup.py 
from setuptools import setup, find_packages 
setup(
    name = "mymath", 
    version = "0.1", 
    packages = find_packages() 
    ) 

Entonces, desde el terminal de hacer:

$ python setup.py bdist_egg 

Esto generará gran cantidad de salidas, pero cuando se completó verá que usted tiene tres nuevas carpetas: construcción, dist y MyMath.egg-info. La única carpeta que nos preocupa es la carpeta dist donde encontrará su archivo .egg, mymath-0.1-py3.5.egg con su pitón por defecto (instalación) número de versión (el mío aquí: 3,5)

Fuente: Python library blog

0

"Egg" es un formato de distribución importable de un solo archivo para proyectos relacionados con Python.

"The Quick Guide to Python Eggs" notas que "Los huevos son de pitones como tarros son a Java ..."

huevos en realidad son más ricos que los frascos; contienen metadatos interesantes, como detalles de licencia, versiones de lanzamiento, etc.

Cuestiones relacionadas