Tengo preguntas sobre los archivos egg en Python.
Tengo mucho código Python organizado por paquete y estoy tratando de crear archivos huevo. Estoy siguiendo instrucciones , pero son muy comunes.
De acuerdo con eso, parece que necesito tener un archivo setup.py.
- ¿Podría decirme qué necesito poner en el archivo setup.py y dónde debería residir?
- Supongo que es suficiente crear setup.py y luego iniciar "setup.py bdist_egg" para obtener el archivo egg. ¿Podrías confirmar?
- ¿Es posible incluir solo archivos .pyc en un archivo egg?
- Teniendo el archivo .egg, ¿cómo puedo iniciar el código sin desempaquetarlo como lo
java -jar <jar file>
hace?
Respuestas:
Estás leyendo la documentación incorrecta. Quieres esto: https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode
La creación de setup.py se cubre en la documentación de distutils en la documentación de la biblioteca estándar de Python aquí . La diferencia principal (para los huevos de Python) que es
import setup
desetuptools
, nodistutils
.Sí. Eso debería ser correcto.
No lo creo.
pyc
los archivos pueden depender de la versión y la plataforma. Es posible que pueda abrir el huevo (deberían ser solo archivos zip) y eliminar los.py
archivos que dejan.pyc
archivos, pero no sería recomendable.No estoy seguro. Ese podría ser el "Modo de desarrollo". ¿O está buscando algún modo “py2exe” o “py2app”?
fuente
Para el n. ° 4, lo más parecido a iniciar java con un archivo jar para su aplicación es una nueva característica en Python 2.6, archivos y directorios zip ejecutables .
Donde myapp.zip es un zip que contiene un
__main__.py
archivo que se ejecuta como el archivo de script a ejecutar. Las dependencias de su paquete también se pueden incluir en el archivo:También puedes ejecutar un huevo, pero el encantamiento no es tan agradable:
# Bourn Shell and derivatives (Linux/OSX/Unix) PYTHONPATH=myapp.egg python -m myapp
Esto coloca myapp.egg en la ruta de Python y usa el argumento -m para ejecutar un módulo. Su myapp.egg probablemente se verá así:
Y Python se ejecutará
__init__.py
(debe verificarlo__file__=='__main__'
en su aplicación para el uso de la línea de comandos).Los archivos Egg son solo archivos zip, por lo que es posible que pueda agregarlos
__main__.py
a su huevo con una herramienta zip y hacerlo ejecutable en Python 2.6 y ejecutarlo comopython myapp.egg
lugar del encantamiento anterior donde se establece la variable de entorno PYTHONPATH.Puede encontrar más información sobre archivos zip ejecutables, incluido cómo hacerlos directamente ejecutables con un shebang, en la publicación del blog de Michael Foord sobre el tema .
fuente
Creo que ahora deberías usar ruedas de pitón para la distribución en lugar de huevo.
fuente