Build con PyInstaller¶
Introducción¶
Esta guía cubre el proceso completo de empaquetado de GestionExpedienteElectronico_Version1 usando PyInstaller para crear ejecutables distribuibles en Windows.
Configuración de PyInstaller¶
Instalación de PyInstaller¶
# Activar ambiente virtual
.venv\Scripts\Activate # Windows
# Instalar PyInstaller
pip install pyinstaller==5.13.0
Versión Específica
Se recomienda usar PyInstaller 5.13.0 por compatibilidad verificada con xlwings y pywin32.
Estructura de Archivos de Spec — Resumen¶
El archivo config/main.spec organiza el empaquetado en cuatro bloques principales:
- Analysis: define el script de entrada, rutas de búsqueda y referencias a binarios/datos/imports. Las listas detalladas (datas, hiddenimports, binaries) han sido omitidas por seguridad y se muestran como marcadores.
- PYZ: empaqueta el código puro en un módulo comprimido — sin cambios sensibles.
- EXE: configura el ejecutable (nombre, modo GUI/console, flags de depuración, icono/version). Valores concretos (p. ej. rutas de icono/version, opciones de signing) están ocultos.
- COLLECT: agrupa los artefactos para el modo --onedir; parámetros de recolección y exclusiones se resumen sin detallar entradas específicas.
Fragmento sanitizado (ejemplo):
# Spec (resumen, valores sensibles redacted)
a = Analysis([str(src_path / '__main__.py')],
pathex=[...],
binaries=[...], # REDACTED
datas=[...], # REDACTED
hiddenimports=[...], # REDACTED
excludes=[...],
cipher=None)
pyz = PYZ(a.pure, a.zipped_data, cipher=None)
exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas,
name='AgilEx_by_Marduk',
console=False,
icon='REDACTED',
version='REDACTED')
coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, name='AgilEx_by_Marduk')
Recomendación: mantén listas sensibles fuera del repositorio público (usar variables de entorno o archivos localmente ignorados) y documenta solo la estructura y los puntos de extensión necesarios.
Build Completado
Con esta configuración puedes crear ejecutables robustos y optimizados para distribución.