python - tipos - tamaño piton bola
¿Qué es un huevo de pitón? (4)
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 visión general rápida del papel que desempeñan y tal vez alguna información sobre por qué son útiles y cómo crearlos?
Nota: el empaque del huevo ha sido reemplazado por el empaque de la rueda
El mismo concepto que un archivo .jar
en Java, es un archivo .zip
con algunos archivos de metadatos .egg
nombre es .egg
, para distribuir el código como paquetes.
Específicamente: la estructura interna de los huevos de Python
Un "huevo de Python" es una estructura lógica que incorpora el lanzamiento de una versión específica de un proyecto de Python, que comprende su código, recursos y metadatos. Existen múltiples formatos que se pueden usar para codificar físicamente un huevo de Python, y otros pueden desarrollarse. Sin embargo, un principio clave de los huevos de Python es que deben ser detectables e importantes. Es decir, debería ser posible que una aplicación de Python descubra qué huevos están presentes en un sistema de manera fácil y eficiente, y garantizar que el contenido de los huevos deseados sea importable.
El formato
.egg
está bien adaptado para la distribución y la fácil desinstalación o actualización del código, ya que el proyecto es esencialmente autónomo dentro de un solo directorio o archivo, sin mezcla con el código o los recursos de cualquier otro proyecto. También hace posible tener varias versiones de un proyecto instaladas simultáneamente, de manera que los programas individuales pueden seleccionar las versiones que desean usar.
"Egg" es un formato de distribución importable de un solo archivo para proyectos relacionados con Python.
La "Guía rápida para los huevos de Python" señala que "los huevos son para los pitones como los tarros para Java ..."
Los huevos en realidad son más ricos que los frascos; contienen metadatos interesantes como detalles de licencias, dependencias de liberación, etc.
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 exe
Windows. Pero tenga en cuenta que para Python
puro, el archivo .egg
es completamente multiplataforma.
El archivo .egg
sí mismo es esencialmente un archivo .zip
. Si cambia la extensión a " zip
", puede ver que tendrá carpetas dentro del archivo.
Además, si tiene un archivo .egg
, puede instalarlo como un paquete usando easy_install
Ejemplo: para crear un archivo .egg
para un directorio, por ejemplo, mymath
que puede tener varios scripts de Python, realice el siguiente paso:
# setup.py
from setuptools import setup, find_packages
setup(
name = "mymath",
version = "0.1",
packages = find_packages()
)
Luego, desde la terminal hacer:
$ python setup.py bdist_egg
Esto generará muchos resultados, pero cuando se complete, verá que tiene tres nuevas carpetas: build , dist y mymath.egg-info . La única carpeta que nos importa es la carpeta dist donde encontrará su archivo .egg
, mymath-0.1-py3.5.egg
con su número de versión de python (instalación) predeterminado (el mío aquí: 3.5)
Fuente: Python library blog.
Los huevos de Python son una forma de agrupar información adicional con un proyecto de Python, que permite verificar y satisfacer las dependencias del proyecto en tiempo de ejecución, así como permitir que los proyectos proporcionen complementos para otros proyectos. Existen varios formatos binarios que incorporan huevos, pero el más común es el formato de archivo zip ''.egg'', porque es conveniente para la distribución de proyectos. Todos los formatos son compatibles, incluidos datos específicos del paquete, metadatos de todo el proyecto, extensiones C y código Python.
La forma más fácil de instalar y usar los huevos de Python es usar el administrador de paquetes de "Instalación fácil" de Python, que encontrará, descargará, construirá e instalará los huevos para usted; todo lo que hace es decirle el nombre (y, opcionalmente, la versión) de los proyectos de Python que desea usar.
Los huevos de Python se pueden usar con Python 2.3 y versiones posteriores, y se pueden crear utilizando el paquete setuptools (consulte la caja de arena de Python Subversion para obtener el código fuente, o la página EasyInstall para obtener las instrucciones de instalación actuales).
Los principales beneficios de los huevos de Python son:
Permiten herramientas como el "Easy Install" Python package manager.
Los archivos .egg son un formato de "instalación cero" para un paquete de Python; no se requiere ningún paso de compilación o instalación, simplemente póngalos en PYTHONPATH o sys.path y utilícelos (puede requerir el tiempo de ejecución instalado si se usan extensiones C o archivos de datos)
Pueden incluir metadatos del paquete, como los otros huevos de los que dependen
Permiten que los "paquetes de espacio de nombres" (paquetes que solo contienen otros paquetes) se dividan en distribuciones separadas (por ejemplo, zope. , Twisted. , Peak. * Los paquetes pueden distribuirse como huevos separados, a diferencia de los paquetes normales que siempre deben colocarse bajo el mismo directorio principal. Esto permite que lo que ahora son enormes paquetes monolíticos se distribuyan como componentes separados.)
Permiten que las aplicaciones o bibliotecas especifiquen la versión necesaria de una biblioteca, de modo que, por ejemplo, pueda requerir ("Twisted-Internet> = 2.0") antes de realizar una importación twisted.internet.
Son un gran formato para distribuir extensiones o complementos a aplicaciones y marcos extensibles (como Trac, que usa huevos para complementos a partir de 0.9b1), porque el tiempo de ejecución de huevo proporciona API simples para localizar los huevos y encontrar sus puntos de entrada anunciados (similares al concepto de "punto de extensión" de Eclipse).
También hay otros beneficios que pueden venir de tener un formato estandarizado, similar a los beneficios del formato "jar" de Java.