Como crear un ejecutable de Windows apartir de un script en Python

Como todos saben, Python es un lenguaje interpretado, sin embargo, hay ocasiones en las cuales es necesario crear un archivo ejecutable  para transportar el script y ejecutarlo sin la necesidad de tener el lenguaje de programación instalado.

Existe una herramienta desarrollada en Python llamada PY2EXE, que nos permite crear un archivo .exe a partir de cualquier script de este mismo lenguaje (Python) en ambientes Windows. En esta oportunidad,  daremos a conocer un ejemplo muy básico sobre el uso de PY2EXE para crear de forma fácil y sencilla un ejecutable .exe basándose en un archivo .py

Requisitos

  • Python: Obviamente es necesario tener instalado el lenguaje  de programación, en entornos GNU/Linux ya viene incluido, pero como estamos trabajando con otros ambientes privativos, debemos descargar el instalador desde acá y proceder con la instalación.
  • Py2Exe: Descargamos la herramienta que nos facilitara el proceso de la creación del .exe descargar aca
  • Es fundamental tener listo el script el cual queremos convertir en .exe

Creando el ejecutable de Python

Teniendo las herramientas necesarias instaladas en nuestro PC procederemos a crear un archivo  .py que lo llamaremos setup en el cual   definiremos las opciones para  nuestro ejecutable, un ejemplo de un archivo setup.py muy basico seria el siguiente:

from distutils.core import setup
import py2exe
setup(console=['script.py'])

Donde script.py es nuestro archivo de python el cual queremos crear en  .exe

Si queremos algo mas personalizado podemos agregar diferentes parámetros a nuestro setup.py por ejemplo:

from distutils.core import setup 
import py2exe 

setup(name="nombre aplicacion", 
 version="0.0", 
 description="Una pequeña descripcion", 
 author="autor", 
 author_email="email del autor", 
 url="url del proyecto", 
 license="tipo de licencia", 
 scripts=["script.py"], 
 console=["script.py"] 
)

Con esto nuestro ejecutable se ejecutara en una consola, pero si deseamos que se ejecute en una ventana cambiamos la linea console=[“script.py”] por esto:

windows=["script.py"]

Por ultimo  procedemos a  crear el ejecutable, es importante aclarar que  tanto el archivo setup.py y script. py deben estar en la misma ruta. Asumiendo esto, creamos el ejecutable:

  1. Abrimos un simbolo del sistema (como llaman a la consola en Windows)
  2. Nos ubicamos donde tengamos  los dos archivos .py (si no saben manejar la consola de Windows, en la red hay miles de articulos que ayudan a defenderse un poco en ella)
  3. ejecutamos el siguiente comando

python setup.py py2exe

Si todo ha salido bien, tendremos una carpeta  llamada dist donde estara nuestro ejecutable  con todos los archivos necesarios para su ejecucion. ¿Pero que pasaria si quisieramos que todos estor archivos fueran incluidos en el ejecutable .exe, es decir que el resultado sea solo un archivo.exe?

Para hacer esto debemos modificar nuestro archivo setup.py de esta forma:

from distutils.core import setup 
import py2exe 
 
setup(name="nombre aplicacion", 
 version="0.0", 
 description="Una pequeña descripcion", 
 author="autor", 
 author_email="email del autor", 
 url="url del proyecto", 
 license="tipo de licencia", 
 scripts=["script.py"], 
 console=["script.py"] 
 options={"py2exe": {"bundle_files": 1}}, 
 zipfile=None
)

Volvemos hacer el punto 3 y como resultado en nuestra carpeta dist tendremos un solo ejecutable listo para correr el cual incluye todas las dependencias que este necesita.

Pata hacer esto desde GNU/Linux no encontre alguna forma posible  aparte de emular el python y el py2exe con wine, si algun usuario tiene idea de como hacer este proceso en GNU/Linux me gustaria que nos comentara como  es el proceso.

11 Comments