Lihuen
RSSRSS AtomAtom

Cómo distribuir programas Python en un solo binario para Windows y Linux

Hoy en día existen distintas formas de distribuir programas y módulos Python:

  • Subiéndolos al repositorio "PyPI - the Python Package Index".
  • Paquetes deb, rpm, etc...
  • Wheels [1] [2].
  • En un binario para Windows o para Linux junto con todas sus dependencias.
  • En una carpeta con todas sus dependencias para Windows o para Linux.

En este artículo se exploran las 2 últimas posibilidades que permiten distribuir módulos Python "autosuficientes" que ni siquiera requieren un intérprete de Python instalado en la máquina para funcionar.

Para generar estas distribuciones existen distintas herramientas py2exe (específica para Windows) y PyInstaller (para Linux, Windows, Mac OS X y otros...).

Dependencias para Windows

Instalar [3] para Windows. En muchas distribuciones GNU/Linux Python viene preinstalado o es instalable usando el gestor de paquetes correspondiente.

Generar un EXE para Windows con py2exe

El primer paso es instalar [4] (la versión debe coincidir con la versión de Python instalada).

Luego, usando pip es necesario instalar las dependencias del paquete que se desea convertir:

 python -m pip install <nombre_paquete>

Finalmente, dentro del directorio donde está el módulo Python que se desea convertir, es necesario modificar el archivo setup.py agregando "import py2exe" y agregando a la invocación a "setup" el argumento "console". Este argumento console debe recibir como valor una lista con los módulos Python que deben ser ejecutables, generalmente en esta lista deberá estar al menos el programa principal.