¿Hay alguna manera de armar archivos de Python, similar a JAR en Java? Necesito una forma de empaquetar un conjunto de clases y funciones de Python, pero a diferencia de un módulo estándar, me gustaría que estuviera en un solo archivo.Combinación de archivos de módulo en Python
Respuesta
Tome un vistazo a los huevos Python: http://peak.telecommunity.com/DevCenter/PythonEggs
O bien, puede utilizar cremalleras regulares: http://docs.python.org/library/zipimport.html
El enfoque más simple es usar zip
. Un archivo jar
en Java es un archivo zip que contiene algunos metadatos, como un manifiesto; pero no necesariamente necesitas la metadata: Python puede importar desde dentro de un archivo zip siempre que coloques ese archivo zip en sys.path, tal como lo harías con cualquier directorio. En el archivo zip, puede tener los orígenes (archivos .py), pero luego Python tendrá que compilarlos sobre la marcha cada vez que un proceso los importe por primera vez; o puede tener los archivos de código de bytes (.pyc o .pyo) pero luego está limitado a una versión específica de Python y a una ausencia (para .pyc) o presencia (para .pyo) de la marca -O (o -OO))
Como otras respuestas indican, hay formatos como .egg
que enriquecen el archivo zip con metatada en Python, así, como Java .jar
, pero si en un caso de uso particular que le da valor WRT extra de un archivo zip llano es una decisión de usted para hacer
Puede crear archivos zip que contengan el código Python e importar desde archivos zip usando zipimport. Un sistema como PyInstaller (multiplataforma) o py2exe (Windows) hará todo esto por usted.
Lea esto PEP para obtener más información.
También, Import modules from Zip.
Después de buscar una solución al mismo problema, terminé escribiendo una herramienta sencilla que combina varios archivos .py en una sola: PyBreeder
Sólo funcionará con módulos de Python puro y puede requerir algún juicio- y error para obtener el orden correcto de los módulos, pero es muy útil siempre que desee implementar un script con algunas dependencias como un simple .py. Comentarios/parches/crítica son bienvenidos!
- 1. combinación con el patrón de herencia módulo
- 2. dinámicamente importar módulo de Python
- 3. Separación de extensiones de archivos mediante el módulo python os.path
- 4. Combinación de diccionarios de listas en Python
- 5. Operador de módulo en Python
- 6. Pointfree combinación función en Python
- 7. Python -. Mejor Módulo para escribir en archivos XLS
- 8. python "módulo de cadena"?
- 9. Desarrollo del módulo de Python
- 10. módulo dinámico en Python
- 11. Combinación de varios archivos PDF usando PDFSharp
- 12. Android: combinación de dos archivos MP4
- 13. Combinación de archivos ordenados con fifos
- 14. diseño de módulo de python
- 15. Carga de archivos en el módulo joomla
- 16. Orden de inicialización del módulo de Python?
- 17. Creación de un módulo de Python
- 18. Módulo de estantería Python pregunta
- 19. Python: La importación de módulo
- 20. Python cruzada módulo de registro
- 21. PyScripter - cambiar las opciones de resaltado/combinación de colores Python
- 22. Múltiples clases en un módulo de Python
- 23. módulo de Python divisoria en múltiples regiones
- 24. Cargar módulo de cadena en python
- 25. Crear solo módulo ejecutable de python
- 26. Módulo Python OCR en Linux?
- 27. descargar un módulo en Python
- 28. Instalación módulo lxml en Python
- 29. ejecute el algoritmo de combinación git en dos archivos individuales
- 30. Combinación de dos archivos .caf en el iPhone
¡Gracias! Había visto usar el término 'huevo', pero no tenía idea de qué era. – c4757p