En este artículo, se mostrará cómo convertir cualquier tipo Python en un ejecutable .exe utilizando Pyinstaller. Este proceso es útil para distribuir aplicaciones basadas en Python de manera sencilla, permitiendo que los usuarios las ejecuten sin necesidad de tener Python instalado.
⚙️ Prerequisitos
Antes de comenzar, asegúrate de tener instalado Python en tu sistema.
💡 Tip: Puedes obtener la última versión de Python desde su página principal.
🛠️ Instalación de Pyinstaller
Para generar el bundle y construir el ejecutable, primero necesitamos instalar Pyinstaller. Ejecuta el siguiente comando en la terminal:
pip install pyinstaller
🚀 Generación de archivo ejecutable (.exe)
Una vez instalado Pyinstaller, podemos generar un archivo ejecutable de nuestro programa siguiendo estos sencillos pasos:
- Abrir la terminal.
- Acceder a la ruta de nuestro script
.py
. - Ejecutar Pyinstaller:
pyinstaller --onefile script.py
💡 Nota: Cuando se ejecuta Pyinstaller sin la opción –onefile, genera una carpeta dist
que contiene varios archivos, incluyendo el ejecutable principal y otros archivos necesarios para que funcione. Este enfoque es útil si prefieres que los archivos estén distribuidos en una estructura de carpetas en lugar de un único archivo ejecutable.
📄 Uso de un fichero .spec
El archivo .spec
en el contexto de PyInstaller es un archivo de configuración que permite personalizar y especificar cómo se construirá tu ejecutable. Tiene dos grandes beneficios:
- Personalización avanzada: Permite ajustar configuraciones que no están disponibles directamente desde la línea de comandos de PyInstaller. Esto incluye especificar módulos o paquetes adicionales (hiddenimports), archivos de datos que deben incluirse (datas), archivos ejecutables externos (exefiles), entre otros.
- Reutilización: Puedes mantener diferentes archivos
.spec
para diversas configuraciones de construcción, lo que facilita la gestión y consistencia en los procesos de compilación.
Configuración del fichero .spec
Dentro del archivo .spec
, puedes especificar diferentes opciones y ajustes según las necesidades del proyecto. Algunas configuraciones comunes son:
- datas: Para incluir archivos adicionales junto con el ejecutable.
- hiddenimports: Para especificar módulos o paquetes adicionales que Pyinstaller no detecta automáticamente.
- exefiles: Para especificar archivos adicionales que se deben incluir como parte del ejecutable.
- icon: Para especificar un archivo de icono que se utilizará para el ejecutable.
Ejemplo de un archivo .spec
:
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['script.py'],
pathex=[],
binaries=[],
datas=[('assets')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='appName',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
icon='assets/logo.ico',
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
🏗️ Generación de .exe utilizando .spec
Para generar el archivo .exe
con las opciones configuradas en el archivo .spec
, accede a la consola y ejecuta:
pyinstaller properties.spec