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:
- Abrimos un simbolo del sistema (como llaman a la consola en Windows)
- 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)
- 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.