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.
- ¿Podría decirme qué debo poner en el archivo setup.py y dónde debería estar?
- Supongo que es suficiente para crear setup.py y luego iniciar "setup.py bdist_egg" para obtener el archivo de huevo. ¿Podrías confirmar?
- ¿Es posible incluir solo archivos .pyc en el archivo huevo?
- 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
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
desdesetuptools
, nodistutils
.Sí. Eso debería estar bien.
No lo creo.
pyc
archivospyc
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.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 .