Volver a la página principal
miércoles 21 agosto 2024
91

Cómo generar un ejecutable en Python

Crear un archivo ejecutable (.exe) a partir de un script en Python es una forma efectiva de distribuir aplicaciones a usuarios que no tienen Python instalado en su sistema. Para generar un ejecutable, puedes utilizar herramientas como PyInstaller o cx_Freeze. Estas herramientas empaquetan tu script y todas sus dependencias en un solo archivo, facilitando la distribución de tu aplicación.

Instalación de PyInstaller

PyInstaller es una de las herramientas más populares para convertir scripts de Python en ejecutables. Para instalarla, utiliza pip:

pip install pyinstaller

Crear un ejecutable con PyInstaller

Una vez que tengas PyInstaller instalado, puedes generar un ejecutable utilizando el siguiente comando:

pyinstaller --onefile tu_script.py

Explicación:

  • --onefile: Indica a PyInstaller que empaquete todo en un solo archivo ejecutable.
  • tu_script.py: Es el archivo Python que deseas convertir en un ejecutable.

Este comando creará una carpeta dist donde encontrarás el archivo ejecutable generado.

Ejemplo:

Supongamos que tienes un script llamado hola_mundo.py con el siguiente contenido:

print("¡Hola, mundo!")

Para convertirlo en un ejecutable, simplemente ejecuta:

pyinstaller --onefile hola_mundo.py

Después de que el proceso termine, encontrarás el ejecutable hola_mundo.exe en la carpeta dist.

Configurar PyInstaller con un archivo .spec

Si necesitas más control sobre cómo se genera el ejecutable, puedes utilizar un archivo de especificación .spec, que se genera automáticamente la primera vez que ejecutas PyInstaller. Este archivo te permite personalizar varios aspectos, como la inclusión de archivos adicionales, iconos, y más.

Ejemplo básico de un archivo .spec:

# hola_mundo.spec

block_cipher = None

a = Analysis(['hola_mundo.py'],
             pathex=['/ruta/a/tu/script'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             hooksconfig={},
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='hola_mundo',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )

coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               upx_exclude=[],
               name='hola_mundo')

Crear un ejecutable con cx_Freeze

Otra herramienta para generar ejecutables es cx_Freeze. Aunque menos popular que PyInstaller, es potente y soporta múltiples plataformas.

Instalación:

pip install cx-Freeze

Uso básico:

Primero, crea un archivo setup.py con el siguiente contenido:

from cx_Freeze import setup, Executable

setup(
    name = "hola_mundo",
    version = "1.0",
    description = "Mi primer ejecutable",
    executables = [Executable("hola_mundo.py")]
)

Luego, ejecuta el siguiente comando en la terminal:

python setup.py build

Esto generará una carpeta build que contendrá el ejecutable y todas las dependencias necesarias.

Personalización y opciones adicionales

  • Iconos personalizados: Puedes añadir un icono personalizado a tu ejecutable utilizando la opción --icon en PyInstaller o especificando icon="ruta_al_icono.ico" en cx_Freeze.
  • Exclusión de consola: Si no quieres que la consola se muestre al ejecutar tu aplicación, puedes usar la opción --noconsole en PyInstaller o configurar base="Win32GUI" en cx_Freeze.

Ejemplo en PyInstaller:

pyinstaller --onefile --noconsole --icon=mi_icono.ico tu_script.py

Algunos ejemplos

1. Generar un ejecutable en modo consola:

pyinstaller --onefile mi_programa.py

2. Generar un ejecutable con un icono personalizado:

pyinstaller --onefile --icon=mi_icono.ico mi_programa.py

3. Crear un ejecutable con cx_Freeze:

from cx_Freeze import setup, Executable

    setup(
        name = "mi_programa",
        version = "1.0",
        description = "Descripción del programa",
        executables = [Executable("mi_programa.py", base="Win32GUI", icon="mi_icono.ico")]
    )

4. Generar un ejecutable sin mostrar la consola:

pyinstaller --onefile --noconsole mi_programa.py

Referencias a sitios oficiales

Para más información sobre cómo generar ejecutables y las opciones avanzadas disponibles, puedes consultar la documentación oficial de PyInstaller y la documentación oficial de cx_Freeze.

Etiquetas:
python
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer