Python es un lenguaje interpretado, esto significa que no hay que compilar el código para ejecutarlo y que podemos ejecutar el código directamente desde el intérprete de Python. Si queremos enviar el programa a otra persona, tendremos que enviar el código y el intérprete de Python para que lo pueda ejecutar. Enviarlo puede ser complicado si se lo mandamos a alguien que no entiende cómo funciona un lenguaje de programación. En este artículo veremos cómo simplificar este proceso generando un único archivo ejecutable de nuestro programa.
Por otro lado, tenemos los lenguajes compilados que requieren pasar el código por un compilador que genera un archivo ejecutable de nuestro código. Con cada modificación que hagamos en el código, tendremos que volver a compilar.
Aunque Python es un lenguaje interpretado, también es posible crear un archivo ejecutable. En este artículo vamos a ver cómo podemos crear un archivo ejecutable para Windows.
Entorno virtual
Lo primero que vamos a hacer es crear un entorno virtual con venv. El objetivo de esto es tener una instancia de python en la que empezamos desde cero e instalamos únicamente los módulos que necesitamos. Si no utilizamos un entorno virtual y tenemos muchos módulos instalados en Python, se pueden dar problemas para generar el ejecutable.
Creamos el entorno virtual y lo activamos:
python -m venv exe_env exe_env\Scripts\activate.bat
exe_env es el nombre del entorno virtual que utilizamos en el proyecto. Se crea una carpeta con ese mismo nombre en la que se guardan los archivos de los módulos que instalemos.
Ahora que ya tenemos el entorno virtual activo, instalamos todas las librerías necesarias para el proyecto. Por ejemplo numpy y pandas:
pip install numpy pandas
Crear el archivo ejecutable
Hay varias maneras de crear un ejecutable de un programa Python. La que a mi me parece más sencilla y funcional es Pyinstaller. El primer paso es instalar pyinstaller:
pip install pyinstaller
Como ejemplo para este tutorial vamos a utilizar un programa que escriba un texto en la terminal y se quede esperando a que le entremos algún dato. Guardamos el archivo con el nombre main.py:
print("Esto es un archivo ejecutable") input()
Desde la terminal, generamos el archivo ejecutable con:
pyinstaller --onefile main.py
Una vez ejecutado ese comando, se deberían haber creado unas carpetas. En la carpeta llamada dist debería estar el archivo ejecutable. Si lo abrimos haciendo doble clic se abrirá una ventana: