Rincón Informático

Un rincon para hablar sobre GNU/Linux, seguridad informatica, y mas!!

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

Publicado por Epsilon En noviembre - 16 - 2009

Como todos saben, 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 , 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 (como llaman a la consola en Windows)
  2. Nos ubicamos donde tengamos  los dos .py (si no saben manejar la consola de Windows, en la 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.

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

12 Responses to “Como crear un ejecutable de Windows apartir de un script en Python”

  1. [...] This post was mentioned on Twitter by epsilon77 and epsilon77, nemesis545. nemesis545 said: Como crear un ejecutable de Windows apartir de un script en Python http://bit.ly/4qjQBZ [...]
  2. ariel dice:
    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??
  3. Epsilon dice:
    solo necesitas transportar el .exe y las librerias que este cree… no es necesario tener instalado phyton en la otra PC
  4. jose dice:
    que bueno por fin logro crear mi primer exe en python, GRAAAACIAS!!
  5. jose dice:
    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”
  6. Raúl dice:
    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

  7. Epsilon dice:
    estas seguro que python esta instalado??? prueba localizando python en tu sistema y haciendo un enlace simbolico a /usr/bin
  8. Raúl dice:
    Nas! Seguro lo tengo instalado xD. Trabajando sobre windows, haciendo doble click o Abrir con –> Python si ejecuta correctamente.
  9. kimi dice:
    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

  10. buni dice:
    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”

  11. Mayra dice:
    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

  12. Rodix dice:
    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