Aprende a crear con PyInstaller un ejecutable en python para Windows. Podrás crear un .exe para distribuir fácilmente tus aplicaciones Windows desarrolladas en Python.
Cuando desarrollamos una aplicación python, y tenemos que distribuirla para usuarios de Microsoft Windows no familiarizados con python y desarrollo, a veces lo mas sencillo es empaquetarlo en un archivo ejecutable .exe y enviarlo. El usuario simplemente tendrá que hacer doble click en el archivo y ejecutarlo. En esta entrada te enseño a crear fácilmente un ejecutable en python para Windows.
En esta entrada encontrarás:
- Qué necesitas para crear un ejecutable en Windows de tus aplicaciones en python.
- Cómo crear un .exe que contenga absolutamente todo lo necesario para ejecutar la aplicación.
- Como utilizar un entorno virtual para conseguir un .exe optimizado con el mínimo tamaño necesario.
Requisitos previos
Tener instalado python y venv en Windows, si ya has creado alguna aplicación en python probablemente este requisito ya lo tienes. En mi caso he utilizado python en Windows 10, si no lo tienes instalado puedes seguir este tutorial.
En este ejemplo asumiremos que ya tienes una aplicación en un archivo «main.py»
Crear un entorno virtual
Lo primero es crear un entorno virtual para compilar la aplicación con los mínimos paquetes necesarios. Crearemos un entorno virtual con venv, llamado venv. Si quieres entender mejor cómo funciona venv, consulta la documentación oficial en este aquí. Desde la carpeta dónde se encuentre el archivo de python con tu aplicacion:
python -m venv venv
A veces en Windows, si tienes pylauncher tienes que usar py en lugar de python:
py -m venv venv
Activa el entorno virtual que acabas de crear:
venv\Scripts\activate.bat
Instalar los paquetes necesarios
Actualiza pip en el entorno virtual:
python -m pip install --upgrade pip #tambien pip install --upgrade pip
Instala todos los paquetes necesarios para tu aplicación y por último instala también pyinstaller. Debes instalar únicamente los paquetes imprescindibles para tu aplicación, en este caso, por ejemplo pandas y pyside2:
pip install pandas
pip install pyside2
pip install pyinstaller
Crea un archivo requirements.txt que contiene una lista de los módulos instalados:
pip freeze > requirements.txt
Crea el ejecutable con PyInstaller
Comprueba que tu aplicación funciona con los módulos instalados ejecutándola como habitualmente en python:
python main.py # Sustituye main.py por el nombre del script de tu aplicación
Crea un nuevo archivo de python que llame a pyintaller para crear tu exe, en la misma carpeta de tu aplicación, lo puedes llamar build_exe.py y con el siguiente contenido:
import PyInstaller.__main__
PyInstaller.__main__.run([
'my_script.py',
'--onefile',
'--console', # or --windowed if you don´t need windows command line
'--name',
'AppName',
'--clean'
])
Ejecuta para el script para crear el exe:
python build_exe.py
Si todo va bien, encontrarás el exe en la carpeta ‘dist’.
También puedes crear el ejecutable lanzando directamente pyinstaller desde la línea de comandos:
pyinstaller --onefile --console --name AppName --clean main.py #Sustituye main.py por el nombre de la aplicación
Deja una respuesta