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:
- 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.
Si yo quiero transportar el instalador generado a otra pc que no tenga instalado python, se puede ejecutar ahi,o es necesario tener instalado python en la otra compu tabmbien??
solo necesitas transportar el .exe y las librerias que este cree… no es necesario tener instalado phyton en la otra PC
que bueno por fin logro crear mi primer exe en python, GRAAAACIAS!!
Por cierto, al intentar hacerlo de la segunda manera, intentando generar sólo un archivo exe con todas las librerías incluidas me da un error con «options»
Hola! No lo consigo! Tengo instalado el python 2.4 con su correspondiente py2exe, pero al ejecutar la linea python setup.py py2exe en linea de comandos, me dice que python no se reconoce como comando interno o externo, programa o archivo por lotes ejecutable.
¿A qué puede ser debido?? Un saludo
estas seguro que python esta instalado??? prueba localizando python en tu sistema y haciendo un enlace simbolico a /usr/bin
Nas! Seguro lo tengo instalado xD. Trabajando sobre windows, haciendo doble click o Abrir con –> Python si ejecuta correctamente.
Esto lo copié de otra web y me sirvió, decia:
«Te falta especificar donde reside tu compilador de python de modo que donde sea que te encuentres y digites ‘python hola.py’ la pc sepa a donde direccionarse para compilar tu archivo.
Suponiendo que «C:\Python26″ es la ruta donde lo instalaste, abre el cmd y digita:
PATH C:\Python26;%PATH%
pulsas Enter y listo con eso lo solucionaste»
El link de donde lo saqué es este: http://es.answers.yahoo.com/question/index?qid=20090812233301AAY1Q6o
Hay que especificar el lugar en que está el compilador de python de modo que donde sea que te encuentres y digites ‘python hola.py’ la pc sepa a donde direccionarse para compilar tu archivo.
Abre la consola y, si donde instalaste python es c:python24 tecleas: PATH C:\Python24;%PATH%
pulsas Enter y listo con eso lo solucionaste»
Hola espero me respondan, les cuento programo pero no en python y la verdad no se nada, logre sacar un script en python copiandolo y ahora deseo hacerlo un ejecutable, intente hacer lo sugerido en este post, peor al momento de correr el scrip me sale un error :
File «C:\Python25\setup.py», line 3, in
setup (windows=[‘renumber.py’])
File «C:\Python25\lib\distutils\core.py», line 139, in setup
raise SystemExit, gen_usage(dist.script_name) + «\nerror: %s» % msg
SystemExit: usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]
or: setup.py –help [cmd1 cmd2 …]
or: setup.py –help-commands
or: setup.py cmd –help
error: no commands supplied
el renumber es el nombre del scrip.py que tengo, y peor al momento de ejecutar en el cmd, se cargan los modulos hasta que me sale un mensaje de que el archivo C:\Python25\Lib\site-packages\py2exe\py2exe_until.pyd no es una imagen valida para windows, perdon que les moleste pero no se que podra ser espero me puedan ayudar en verdad lo necesito, porfabor ayuda, de antemano les agradezco
Falta una coma al final de la linea que dice console:
console=[«script.py»]
A esto se debe el error de syntaxis que señalan