Aplicaciones Python ejecutables con PyInstaller en IOTeca

Aplicaciones Python ejecutables con PyInstaller

PyInstaller agrupa a una aplicación Python y todas sus dependencias en un solo paquete. El usuario puede ejecutar la aplicación empaquetada sin necesidad de instalar un intérprete de Python o ningún módulo.

PyInstaller lee el programa Python indicado, analiza su código para descubrir todos los módulos y bibliotecas que necesita para su ejecució, recopila copias de todos esos archivos, incluyendo el intérprete de Python, y los colocaen una sola carpeta, u opcionalmente en un solo archivo ejecutable.

PyInstaller se ha probado con Windows, Mac OS X y GNU / Linux. Sin embargo, no es un compilador cruzado: para hacer una aplicación de un sistema operativo, se debe ejecutar PyInstaller en ese mismo sisitema operativo.

Ventajas principales

  • Funciona con cualquier versión de Python 2.7 / 3.5-3.7.
  • Completamente multiplataforma, y utiliza el soporte del sistema operativo para cargar las bibliotecas, lo que garantiza una compatibilidad total.
  • Empaqueta correctamente los principales paquetes de Python como numpy, PyQt4, PyQt5, PySide, Django, wxPython, matplotlib y otros listos para usar.
  • Compatible con muchos paquetes de terceros.

Instalación

PyInstaller se encuentra disponible PyPI, por lo tanto se puede instalar con pip:

pip install pyinstaller
Si existe una instalación de python 2.7 y otra de 3.X en el mismo equipo, instalar en la 3.X con :
pip3 install pyinstaller

Modo de uso

Utilizaremos para probar un archivo llamado archivo-tk.py, con el siguiente código:

import tkinter as tk
win=tk.Tk()
win.title("Aplicación TK")
win.mainloop()

Lo único que hace es 3/2/2020 18:08:42 p. m.iportar la biblioteca tkinter y crear una ventana. Para generar la distribución utilizaremos el siguiente comando:

pyinstaller archivo-tk.py

PyInstaller analiza el archivo-tk.py y:

  • Escribe el archivo de especificacionesarchivo-tk.spec en la misma carpeta que el archivo-tk.py.
  • Crea una carpeta build en la misma carpeta que el archivo-tk.py si no existe.
  • Escribe algunos archivos log y archivos de trabajo en la carpeta build.
  • Crea una carpeta dist en la misma carpeta que el archivo-tk.py si no existe.
  • Crea la carpeta archivo-tk.py y el archivo-tk ejecutable en la carpeta dist.

En la carpeta dist encontrará la aplicación y dependecias para distribuir a los usuarios.

Algunos parámetros

-D, --onedir

Crea un paquete de una carpeta conteniendo un archivo ejecutable (defecto).

-F, --onefile

Crea un paquete de un archivo ejecutable.

--specpath DIR

Carpeta para almacenar el archivo de especificaciones .spec generado (predeterminado: directorio actual).

-n NAME, --name NAME

Nombre para asignar al paquete de aplicación y al archivo de especificaciones ,spec (predeterminado: nombre de archivo .py).

-c, --consolse, --nowindowed

Abre una ventana de consola para E / S estándar (predeterminado).

-w, --windowed, --noconsole

Windows y Mac OS X, no abriran una ventana de consola para E / S estándar. Esta opción se ignora en los sistemas * NIX.

Si ahora utilizamos pyinstaller con los parámetros --noconsole --onefile
pyinstaller --noconsole --onefile archivo-tk.py

Podremos notar la diferencias:

  • Crea una carpeta dist en la misma carpeta que el archivo-tk.py si no existe, y sólo el archivo-tk ejecutable dentro de ella
  • Al ejecutarse el archivo-tk no se abre la consola

Creado: 03/02/2020  

Publicidad

| Volver a Python |

Comentarios

Para poder comentar debés registrarte e ingresar al sitio.