Python Language
PyInstaller - Distribuir código de Python
Buscar..
Sintaxis
- pyinstaller [opciones] script [script ...] | archivo de especificaciones
Observaciones
PyInstaller es un módulo utilizado para agrupar aplicaciones de Python en un solo paquete junto con todas las dependencias. El usuario puede ejecutar la aplicación del paquete sin un intérprete de Python o cualquier módulo. Combina correctamente muchos paquetes importantes como numpy, Django, OpenCv y otros.
Algunos puntos importantes para recordar:
- Pyinstaller es compatible con Python 2.7 y Python 3.3+
- Pyinstaller ha sido probado contra Windows, Linux y Mac OS X.
- NO es un compilador cruzado. (Una aplicación de Windows no se puede empaquetar en Linux. Debe ejecutar PyInstaller en Windows para agrupar una aplicación para Windows)
Instalación y configuración
Pyinstaller es un paquete normal de Python. Se puede instalar utilizando pip:
pip install pyinstaller
Instalación en Windows
Para Windows, pywin32 o pypiwin32 es un requisito previo. Este último se instala automáticamente cuando se instala pyinstaller usando pip.
Instalación en Mac OS X
PyInstaller funciona con el Python 2.7 predeterminado que se proporciona con el Mac OS X actual. Si se van a usar versiones posteriores de Python o si se deben usar paquetes importantes como PyQT, Numpy, Matplotlib y similares, se recomienda instalarlos usando ya sea MacPorts o Homebrew .
Instalación desde el archivo
Si pip no está disponible, descargue el archivo comprimido desde PyPI .
Para probar la versión de desarrollo, descargue el archivo comprimido desde la rama de desarrollo de la página de descargas de PyInstaller .
Expanda el archivo y encuentre el script setup.py
. Ejecute python setup.py install
con privilegio de administrador para instalar o actualizar PyInstaller.
Verificando la instalación
El comando pyinstaller
debería existir en la ruta del sistema para todas las plataformas después de una instalación exitosa.
pyinstaller --version
escribiendo pyinstaller --version
en la línea de comando. Esto imprimirá la versión actual de pyinstaller.
Usando Pyinstaller
En el caso de uso más simple, simplemente navegue hasta el directorio en el que se encuentra su archivo y escriba:
pyinstaller myfile.py
Pyinstaller analiza el archivo y crea:
- Un archivo myfile.spec en el mismo directorio que
myfile.py
- Una carpeta de compilación en el mismo directorio que
myfile.py
- Una carpeta dist en el mismo directorio que
myfile.py
- Archivos de registro en la carpeta de compilación
La aplicación incluida se puede encontrar en la carpeta dist
Opciones
Hay varias opciones que se pueden usar con pyinstaller. Una lista completa de las opciones se puede encontrar aquí .
Una vez que su aplicación se puede empaquetar, abra 'dist \ myfile \ myfile.exe'.
Agrupar en una carpeta
Cuando se usa PyInstaller sin ninguna opción para agrupar myscript.py
, la salida predeterminada es una única carpeta (denominada myscript
) que contiene un ejecutable llamado myscript
( myscript.exe
en Windows) junto con todas las dependencias necesarias.
La aplicación se puede distribuir comprimiendo la carpeta en un archivo zip.
El modo de una carpeta se puede configurar explícitamente con la opción -D
o --onedir
pyinstaller myscript.py -D
Ventajas:
Una de las principales ventajas de agrupar en una sola carpeta es que es más fácil depurar problemas. Si alguno de los módulos no se puede importar, puede verificarse inspeccionando la carpeta.
Otra ventaja se siente durante las actualizaciones. Si hay algunos cambios en el código pero las dependencias utilizadas son exactamente las mismas, los distribuidores pueden enviar el archivo ejecutable (que generalmente es más pequeño que la carpeta completa).
Desventajas
La única desventaja de este método es que los usuarios tienen que buscar el ejecutable entre una gran cantidad de archivos.
Además, los usuarios pueden eliminar / modificar otros archivos, lo que puede hacer que la aplicación no funcione correctamente.
Agrupar en un solo archivo
pyinstaller myscript.py -F
Las opciones para generar un solo archivo son -F
o --onefile
. Esto myscript.exe
el programa en un solo archivo myscript.exe
.
Un solo archivo ejecutable es más lento que el paquete de una carpeta. También son más difíciles de depurar.