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
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.
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
"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.
- 1. Creé un huevo de Python; ¿ahora que?
- 2. Cómo crear el archivo huevo de Python
- 3. python: ejemplo simple para un huevo python con un archivo fuente de un solo archivo?
- 4. ¿Cuál es el punto de los archivos de huevo de Python?
- 5. ¿Cómo ejecutar archivos huevo Python directamente sin instalarlos?
- 6. Accediendo a los propios metadatos del huevo python
- 7. 'setup.py test' ubicación de instalación del huevo?
- 8. ¿Qué es un equivalente Python de Perlbrew?
- 9. Qué es un subproceso de python
- 10. ¿Qué es un objeto de código Python?
- 11. ¿Cuáles son instrucciones simples para crear una estructura de paquete Python y un huevo?
- 12. ¿hay alguna forma de importar un huevo de Python de la memoria, pero no del disco?
- 13. "UserWarning: huevo no construido para setuptools": ¿qué significa esto realmente?
- 14. problema de la yema de huevo virtualenv
- 15. ¿Cómo puedo excluir archivos en mi .gitignore al empaquetar un huevo de Python?
- 16. ¿Qué es un "método" en Python?
- 17. ¿Quién programa el programador en el sistema operativo? ¿No es un escenario de gallina y huevo?
- 18. ¿Por qué mi huevo de pitón no funciona? - No hay distribuciones en absoluto encontrados para
- 19. Tiene problemas para agregar skifree como un huevo de pascua
- 20. ¿Tengo alguna obligación si cargo un huevo en CheeseShop?
- 21. ¿Qué es 'imprimir' en Python?
- 22. ¿Qué es "\ 00" en Python?
- 23. ¿Qué es un ciclo de referencia en python?
- 24. ¿Qué es un buen marco liviano de Python MVC?
- 25. ¿Qué es un buen software Webshop basado en python?
- 26. ¿Qué es "binding lambda" en Python?
- 27. ¿Cómo puedo detectar errores programáticamente cuando construyo un huevo con herramientas de configuración?
- 28. ¿Qué es una lista instrumentada en Python?
- 29. ¿Qué es una expresión en Python?
- 30. Lista confusa [...] en Python: ¿qué es?