Convierte ficheros Python en .EXE

0:00

Si alguna vez te has preguntado cómo convertir tus aplicaciones de Python en archivos ejecutables, has llegado al lugar adecuado. En este tutorial, te mostraré paso a paso cómo utilizar PyInstaller 🐍, una poderosa herramienta que te permitirá empaquetar tus proyectos de Python en programas ejecutables para diferentes plataformas. Así que, ¡Vamos a por ello!.

1. PyInstaller

En muchas ocasiones, una vez que hemos cumplido con la realización de un programa, queremos distribuirlo. Sin embargo, el instalar las dependencias de nuestro programa en cada computador en el que vaya a ser usado, puede no ser lo más eficiente. Es allí donde aparece PyInstaller, que es una herramienta poderosa y sencilla que permite convertir nuestros scripts de Python en ejecutables independientes, lo que facilita su distribución sin preocupaciones adicionales.

1. 1 ¿Qué es un archivo ejecutable y para qué sirve?

En informática, un ejecutable es un archivo que contiene código máquina (código binario) que puede ser directamente ejecutado por el sistema operativo de una computadora. Según el sistema operativo se crean distintas extensiones para estos archivos. Por ejemplo: para Windows tenemos .exe (abreviación del inglés executable) o para macOS .dmg (archivo de imagenes de disco).

1.2 ¿Qué es PyInstaller?

PyInstaller es un módulo para Python que permite convertir programas en ejecutables para diferentes plataformas, como Windows (.exe), macOS (.dmg) y GNU/Linux. Esto le permitirá al usuario correr la aplicación mediante su ejecutable sin haber instalado el intérprete de Python u otros módulos.

NOTA: También ha sido probado en sistemas operativos como AIX, Solaris, FreeBSD y OpenBSD. Pero hay que tomar en cuenta que no realizan pruebas continuas sobre ellos.

1.3 ¿Qué hace PyInstaller?

PyInstaller lee y analiza el script o programa que se ha realizado en Python, para descubrir qué módulos y librerías se ha usado y que necesita el código para ejecutarse. Entonces recolecta toda esa información y la ubica en un solo directorio o en un archivo ejecutable, según se le especifique.

Esto facilita la distribución y ejecución en sistemas que no tengan instalado Python o las bibliotecas necesarias.

2. Cómo usar PyInstaller

A este lo vamos a usar desde el terminal. Además, es importante tener en cuenta que si se desea crear un ejecutable para una aplicación de Windows, debes ejecutar PyInstaller en Windows. Si, en cambio, necesitas el ejecutable para GNU/Linux, debes ejecutarlo en ese sistema operativo. En conclusión, debes usar PyInstaller en el sistema operativo en el cual se vaya a usar tu ejecutable.

2.1 Instalar PyInstaller

Para su instalación usaremos pip: 

pip install pyinstaller

2.2 Comandos de configuración

A continuación se listarán los comandos que se utilizarán a lo largo de este y el siguiente tutorial. Recuerda que puedes obtener más información sobre todas las opciones de configuración de PyInstaller en su documentación, por lo que te recomiendo echarle un vistazo.

-D, –onedir

Al usarlo, PyInstaller creará una carpeta de salida que contendrá todos los archivos necesarios para ejecutar la aplicación. Dentro de este directorio se incluirá el archivo ejecutable de la aplicación, los recursos y dependencias requeridos. (Comando por defecto).

-F, –onefile

Al usarlo, PyInstaller generará un solo archivo ejecutable que contendrá toda la aplicación y sus dependencias. En lugar de generar una carpeta con múltiples archivos, como lo hace la opción «–onedir», «–onefile» comprime todo en un solo archivo ejecutable.

-w, –windowed

Al emplearlo, le estamos indicando a PyInstaller que la aplicación debe ejecutarse en modo ventana, sin mostrar la consola o terminal. Esto significa que la aplicación se ejecutará con una interfaz gráfica de usuario (GUI).

–add-data

Se utiliza para incluir datos o recursos adicionales (como archivos de configuración, imágenes, entre otros) en la aplicación empaquetada o el ejecutable. Estos datos adicionales pueden ser archivos, directorios o recursos que la aplicación necesita para funcionar correctamente. Esta puede utilizarse varias veces en la línea de comandos.

Su sintaxis es: 

–add-data «ruta_origen;ruta_destino»

Donde:

  • «ruta_origen» es la ubicación del archivo, directorio o recurso que deseas incluir en el ejecutable.
  • «ruta_destino» es la ubicación relativa dentro del ejecutable donde deseas que se coloque el archivo o recurso.

–icon

Se usa para incorporar una imagen al ícono del ejecutable. Su uso está dedicado a darle identidad visual a la aplicación.

2.3 ¿Cómo crear un ejecutable con PyInstaller?

Una vez que se ha instalado, se procede a ir a la ubicación donde se encuentra el script de Python que se desea convertir en ejecutable. Esto lo hacemos a través del terminal. Una vez allí podremos especificar:

pyinstaller tu_archivo.py

Se tendrá que reemplazar 

tu_archivo.py con el nombre del archivo Python que se desea convertir en un ejecutable. Con ello, pyinstaller comenzará a analizar dicho archivo y sus dependencias para generar el ejecutable (además se pueden añadir más opciones de configuración como las descritas anteriormente, ya lo veremos). Una vez finalizado el proceso, se podrá ver las carpetas: build, dist y un archivo .spec. La carpeta dist contendrá el ejecutable.

3. ¡Manos a la obra! A usar pyinstaller

Vamos a probar con 3 proyectos diferentes. Aunque el segundo y tercero son aplicaciones de visión por computador que veremos en el siguiente tutorial, estos pueden también servirte como ejemplo para otro tipo de aplicaciones. Así que, ¡vamos a por ello!.

3.1 Proyecto 1: Imprimir texto

Para este ejemplo tenemos el programa 

saludo.py, cuyo contenido es:

print(«Hola, hola Omesitos!»)

Para convertir en ejecutable a dicho programa, vamos a hacerlo de dos formas. La primera, creando un directorio que contendrá el ejecutable y sus dependencias, y la segunda, creando un único archivo ejecutable, veamos.

3.1.1 Crear un directorio donde estará el ejecutable junto con sus dependencias

Desde la terminal nos ubicamos en donde está nuestro archivo saludo.py. Y procedemos a especificar:

pyinstaller saludo.py

NOTA: Hay que tomar en cuenta que la opción de configuración usada aquí es -D, –onedir. No se la especifica, ya que es el valor por defecto que usa PyInstaller para generar ejecutables.

Tardará unos segundos, y en la carpeta donde estábamos ubicados se visualizarán dos carpetas y un archivo nuevo. Similar a lo que tenemos a continuación:

Entonces nos dirigiremos a dist. Dentro encontraremos una carpeta del mismo nombre que nuestro archivo .py. Ingresamos a ella y buscamos el archivo ejecutable con el mismo nombre. En el caso de Windows, este aparecerá con la extensión .exe.

Para ejecutarlo tendremos que ir a nuestro terminal y ubicarnos en esta carpeta que contiene el .exe. Y digitamos: 

.\saludo.exe. A continuación veremos como se imprime nuestro saludo:

Este programa lo tenemos que ejecutar desde el terminal porque es donde podremos ver los resultados. En el siguiente tutorial veremos como realizar un ejemplo con una GUI.

3.1.2 Crear un único archivo ejecutable

El proceso es bastante similar al anterior, con la diferencia que deberemos añadir una opción de configuración, veamos:

pyinstaller –onefile saludo.py

Al añadir –onefile, de igual manera obtendremos dos carpetas y un archivo en la misma ubicación de nuestro programa de Python. Sin embargo en la carpeta dist únicamente tendremos un archivo ejecutable.

Para ejecutarlo, seguiremos el mismo proceso que en la sección anterior. Nos ubicaremos en el directorio donde está presente este archivo desde el terminal.

Y listo, ya lo tenemos. Por ahora hemos aprendido muchísimo, en el siguiente tutorial nos adentraremos a las opciones de configuración que nos falta ver. ¡Así que te espero en el siguiente blog post!.

📜 Documentación:
🔗 https://pypi.org/project/pyinstaller/
🔗https://github.com/pyinstaller/pyinstaller

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *