Introducción al desarrollo de aplicaciones de escritorio con Python

escritorio
Python dispone de muchos módulos, librerias y herramientas para la creación de aplicaciones de escritorio pero, por desgracia, ningún IDE comparable a los utilizados por Visual Basic, .Net o Java.

Este artículo describe las implementaciones más completas, a mi parecer, que se pueden encuentrar actualmente en la Red.

Librerias


En modo texto:

PyTVision
permite construir IUs usando una versión (aparentemente) propia de la libreria Turbo Vision (de Borland, no, Inprise, no, Borland) - muy verde y compleja de instalar en Windows

TUY.py
permite construir IUs mediante widgets pero sin el concepto de ventanas y sólo permite mostrar un widget a la vez - extraña forma de distribución: hay que pedirla directamente al propio autor

En modo gráfico:

TK
la libreria de IUs estándar de Python - viene incluida en el propio paquete de Python, con lo que no hace falta descargar e instalar ningún paquete adicional - la estética de los widgets es propia por lo que puede que no se adapte totalmente al escritorio bajo el que se represente - interfaz ajena a usuarios WIN

pyGTK
wrapper a la libreria GTK+ (en la que se basa GNOME) - no es totalmente multi-plataforma, haciendo muy complicado su uso en sistemas WIN - utiliza widgets propios que, aunque completos, pueden resultar 'extraños' al escritorio sobre el que se representan 

editor de interfaces de usuario para GTK+ - crea ficheros XML que pueden ser interpretados por pyGTK

librería complementaria que añade capacidades MVC a pyGTK

wxPython
'fino' wrapper a la libreria wxWidgets - es (casi) totalmente multi-plataforma: soporta *NIX, WIN y, parcialmente, Mac OS X pero presenta un 'idioma' (léase API) poco pythonizado - utiliza widgets nativos por lo que es más rápida que pyGTK y se integra mejor con el escritorio sobre el que corre

wxGlade
editor de interfaces de usuario para wxWidgets - crea ficheros XML que pueden ser interpretados por wxPython o código Python del que derivar las clases del IU

wax
wrapper a wxPython que intenta 'pythonizar' la jerarquia de clases de wxPython y eliminar los aspectos de bajo nivel que éste presenta (como tener que definir un ID por cada recurso visual) - se encuentra en una fase temprana de desarrollo aunque es bastante estable y consistente

pythoncard
incluye una libreria de clases y un simple editor de formularios que pretenden facilitar la programación de la libreria wxPython - es bastante compleja, lo que tal vez explique la falta de soporte de alguno de los widgets que incluyen las últimas versiones de wxPython y que su desarrollo no sea lo ágil que debiera

Herramientas


Libres

Eric3
el más completo entorno de desarrollo Python - utiliza Qt Designer como editor de interfaces - basado en PyQt

Boa
entorno de desarrollo Python - utiliza wxGlade como editor de interfaces - basado en wxPython

pydev
plug-in para Eclipse (IDE de IBM para C++ y Java) que permite la edición, depuración y ejecución de módulos Python - en fase alfa

Comerciales

WingIDE
completo pero espartano - no dispone de editor de interfaces

BlackAdder
similar en funcionalidad y requerimientos a Eric3 (que es un fork libre de BlackAdder) - incluye licencia para realizar trabajos derivados comerciales sin el pago de tasas adicionales

Referencias


http://libertonia.escomposlinux.org/story/2002/12/31/13481/135
http://www.awaretek.com/toolkits.html