proyectos ejemplos python packaging egg

ejemplos - Cómo crear el archivo huevo de Python



django (3)

Tengo preguntas sobre archivos de huevo en Python.

Tengo mucho código de Python organizado por paquete y estoy tratando de crear archivos de huevo. Estoy siguiendo las instructions , pero son muy comunes.

Según eso, parece que necesito tener un archivo setup.py.

  1. ¿Podría decirme qué debo poner en el archivo setup.py y dónde debería estar?
  2. Supongo que es suficiente para crear setup.py y luego iniciar "setup.py bdist_egg" para obtener el archivo de huevo. ¿Podrías confirmar?
  3. ¿Es posible incluir solo archivos .pyc en el archivo huevo?
  4. Al tener un archivo .egg, ¿cómo puedo comenzar el código sin desempaquetar, como lo hace java -jar <jar file> ?

Creo que deberías usar ruedas de pitón para distribución en lugar de huevo ahora.

Las ruedas son el nuevo estándar de distribución de pitón y están destinadas a reemplazar huevos. El soporte se ofrece en pip> = 1.4 y setuptools> = 0.8.


Estás leyendo la documentación incorrecta. Desea esto: https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode

  1. La creación de setup.py está cubierta en la documentación de distutils en la documentación de la biblioteca estándar de Python here . La diferencia principal (para los huevos de pitón) es import setup desde setuptools , no distutils .

  2. Sí. Eso debería estar bien.

  3. No lo creo. pyc archivos pyc pueden ser dependientes de la versión y de la plataforma. Es posible que pueda abrir el huevo (solo deben ser archivos zip) y eliminar archivos .py dejando archivos .pyc , pero no sería recomendable.

  4. No estoy seguro. Eso podría ser "Modo de desarrollo". ¿O está buscando algún modo "py2exe" o "py2app"?


Para # 4, lo más parecido a comenzar java con un archivo jar para su aplicación es una nueva característica en Python 2.6, archivos zip y directorios ejecutables .

python myapp.zip

Donde myapp.zip es un archivo zip que contiene un archivo __main__.py que se ejecuta como el archivo de script que se ejecutará. Las dependencias de su paquete también se pueden incluir en el archivo:

__main__.py mypackage/__init__.py mypackage/someliblibfile.py

También puedes ejecutar un huevo, pero el conjuro no es tan bueno:

# Bourn Shell and derivatives (Linux/OSX/Unix) PYTHONPATH=myapp.egg python -m myapp

rem Windows set PYTHONPATH=myapp.egg python -m myapp

Esto pone el myapp.egg en la ruta de acceso de Python y utiliza el argumento -m para ejecutar un módulo. Su myapp.egg probablemente se verá algo así como:

myapp/__init__.py myapp/somelibfile.py

Y python ejecutará __init__.py (debe verificar ese __file__==''__main__'' en su aplicación para usar la línea de comandos).

Los archivos de huevo son solo archivos zip, por lo que puede agregar __main__.py a su huevo con una herramienta zip y hacerlo ejecutable en python 2.6 y ejecutarlo como python myapp.egg lugar del encantamiento anterior donde se establece la variable de entorno PYTHONPATH .

Se puede encontrar más información sobre los archivos zip ejecutables, incluyendo cómo hacerlos ejecutables directamente con un shebang en la publicación de blog de Michael Foord sobre el tema .