FoxPress – Mayo 2005

 

Mi primer EXE en Python con pantallas

 

Por la Redacción de FoxPress

 

Python es un producto emergente que concita muchos comentarios y algunas veces se han hecho aquí referencias a este producto.

            Pero para un programador novato en el producto, las dificultades que se le presentan se le hacen insuperables... Sólo pensar que con Fox, producto que domina, una aplicación la puede hacer en 5 minutos (una aplicación hiper-pequeña, se entiende) y cuando lo intenta con Python se va atascando en cada paso... Las dificultades se hacen insuperables y al final uno lo deja para otra ocasión.

            El objetivo de este artículo es guiar paso a paso, desde el principio hasta que realices un .Exe que sea distribuible.

            Este proceso se encuentra con dos dificultades importantes:

1.- Python no tiene pantallas

2.- Python no hace ejecutables.

            El proceso sería el siguiente:

Descargar

1.- Bájate la ultima versión del programa. Te la puedes bajar de aquí: http://www.python.org/ftp/python/2.4.1/python-2.4.1.msi

2.- Bájate wxPython que es la herramienta para hacer pantallas: http://prdownloads.sourceforge.net/wxpython/wxPython2.6-win32-ansi-2.6.0.0-py24.exe (www.wxpython.org/)

3.- Bájate Py2exe para hacer los ejecutables (http://prdownloads.sourceforge.net/py2exe/py2exe-0.5.4.win32-py2.4.exe?download)

Instalar

Una vez te hallas bajado todo, instálalo siguiendo las opciones por defecto.

Python te habrá creado un directorio llamado C:\Python24  y ahí es donde él se habrá instalado.

Por su parte, wxPython se habrá instalado en C:\Python24\Lib\site-packages

Y py2Exe se habrá instalado en C:\Python24\Lib\site-packages\

Ya tenemos instalado todo lo que necesitamos.

Hacer un programa en Python con una ventana

El siguiente paso, es con tu editor preferido (espero que no uses el Notepad) cópiate el código que te pongo a continuación:

from wxPython.wx import wxPySimpleApp, wxFrame
app = wxPySimpleApp()
frame = wxFrame(None, -1, "Hello World")
frame.Show(1)
app.MainLoop()

Este código hace lo siguiente:

    from wxPython.wx import wxPySimpleApp, wxFrame

             La linea anterior, carga en memoria la librería wxPython

  
  app = wxPySimpleApp()
 
      Creamos una especie de objeto basado en la clase aplicación
  
  frame = wxFrame(None, -1, "Hello World")
 
      Creamos una instancia de la clase formulario con un caption "Hello World"
 
      Pedimos que nos muestra la ventana que hemos creado
 
  frame.Show(1)
 
   Escribimos una especie de READ EVENTS
 
   app.MainLoop()
 
       el fichero anterior lo guardamos con el siguiente nombre miaplicacion.py y lo dejamos en C:\
 
Nota: Es importante, si no eres muy ducho con Python que sigas todos los pasos que te pongo de forma estricta sin usar otros directorios.
 
       A continuación abrimos Python desde la opción IDLE Python GUI y lo que nos muestra: viene a ser como una ventana de comandos pegada al screen.
 
       Al igual que pasa en Fox que por defecto se te abre en el directorio donde está instalado Fox. Aquí el Path está apuntando al directorio donde se encuentra Python y lo primero que vamos a hacer es re-dirigirlo a C:\
 
       Para esto escribimos en la ventana de Python:
 
Import sys
Sys.path.append(‘C:\\’)
 
       Esto en realidad viene a ser que se cargue en memoria la libreria de funciones SYS que hace referencia a cosas del sistema operativo y se añade al path de busqueda (algo parecido al SET PATH TO) para que busque en C:\
 
       Para saber en qué directorio estamos se ejecuta:
 
Import os
Os.getcwd()
 
que nos dice que estamos en C:\Python24
 
Para retroceder hasta C:\ en el arbol de directorios escribimos:
 
 os.chdir(‘..’)
 
 
Y ya podemos ver que estamos en C:\ que es donde habiamos dejado el archivo 
 
 
 
 
a continuación invocamos la aplicación que habíamos hecho antes y la habiamos guardado en miaplicacion.py
 
Para eso ejecutamos
 
Execfile(‘miaplicacion’)

Seguramente se te abra minimizada. De esta forma ya tenemos nuestra ventana de pitón funcionando.

Compilar el Ejecutable

Para eso primero nos creamos un fichero que vamos a llamar setup.py con lo siguiente:

# setup.py

from distutils.core import setup

import py2exe

     

setup(windows=["miaplicacion.py"])

Y A continuación desde la ventana de comandos de Windows ejecutamos:

Nos saldrá una pantalla negra con todas las cosas que va haciendo.

Verás que una vez acabado en C:\ tienes dos directorios, uno llmado build y otro dist.

Si dentro de dist ejecutas el ejecutable llamado miaplicacion.exe ¡¡bingo!! Tienes tu aplicación funcionando.

 

Redistribuir la Aplicación

Para poder instalar tu aplicación en otros ordenadores, unicamente tienes que llevar todos los ficheros que se encuentran en el directorio dist que se te ha creado al ejecutar el py2exe y ahí tienes todo.

Al copiarlo a una máquina Win XP limpia, unicamente me pidio que le añadiera el fichero MSVCE71.DLL que basto con copiarlo al lado de los anteriores y sin registrar nada ya funcionó. No hay que registrar ningún fichero y el tiempo que tardó en salir la primera pantalla es similar al que tardan las aplicaciones Fox.

 

 

FoxPress – Mayo de 2005

© 2005 FoxPress. All rights reserved