top programing ides gui graphical create python user-interface wxpython distribution freeze

programing - top gui python



RedistribuciĆ³n de la aplicaciĆ³n GUI de Python (7)

Necesito desarrollar una aplicación de GUI de escritorio pequeña-mediana, preferiblemente con Python como idioma de elección debido a las limitaciones de tiempo.

¿Qué opciones de biblioteca de GUI tengo que me permiten redistribuir mi aplicación de forma independiente, suponiendo que los usuarios no tienen una instalación de Python en funcionamiento y obviamente tampoco tienen las bibliotecas de GUI que estoy usando?

Además, ¿cómo haría para empaquetar todo en binarios de un tamaño razonable para cada sistema operativo objetivo? (mis objetivos principales son Windows y Mac OS X)

Además: he estado viendo WxPython, pero he encontrado muchas historias de terror sobre cómo empaquetarlo con cx_freeze y cómo obtener 30mb + binarios, y ningún consejo real sobre cómo hacer el empaque y qué tan digno de confianza es.


Combinación con la que estoy familiarizado: wxPython, py2exe, upx

La clave para resolver su última preocupación sobre el tamaño de la distribución es usar upx para comprimir los archivos DLL. Parece que admiten ejecutables de MacOS. Pagará una penalización de descompresión inicial cuando los archivos DLL se carguen por primera vez.


He usado py2Exe yo mismo - es realmente fácil (al menos para pequeñas aplicaciones).


No tengo ninguna experiencia en la creación de aplicaciones independientes para ninguna plataforma que no sea Windows.

Eso dijo:

Tkinter: funciona bien con py2exe. Python Megawidgets (una "biblioteca de expansión" para Tkinter) funciona bien también, pero funciona de manera funky con importaciones dinámicas, por lo que debe combinar todos los componentes en un archivo grande "pmw.py" y agregarlo a su proyecto (bueno, también tendrá pmwblt.py y pmwcolor.py). Hay instrucciones sobre cómo hacer esto en alguna parte (ya sea en la wiki de py2exe o en los documentos de PMW). Tix (una extensión de Tk que puede usar con Tkinter) no funciona con py2exe, o al menos esa fue mi experiencia hace aproximadamente cuatro años.

wxPython también funciona bien con py2exe. Acabo de comprobar una aplicación que tengo; toda la distribución llegó a alrededor de 11MB. La mayor parte de eso eran las DLL wx y los archivos .pyd, pero no veo cómo evitarías eso. Si tiene como objetivo Windows XP, debe incluir un manifiesto en su setup.py o se verá feo. Mira este correo electrónico para más detalles.


Python tiene un kit de herramientas GUI incrustado llamado TKinter que se basa en la biblioteca Tk del lenguaje de programación TCL. Es muy básico y no tiene toda la funcionalidad que espera en Windows Forms o GTK, por ejemplo, pero si debe tener toolkit independiente de la plataforma, no veo otra opción teniendo en cuenta que tampoco desea aumentar tanto el binario.

Tkinter no es difícil de usar, ya que no tiene millones de widgets / controles y opciones, y es el kit de herramientas predeterminado incluido en la mayoría de las distribuciones de python, al menos en Windows, OSX y Linux.

GTK y QT son más bonitas y más potentes, pero tienen una gran desventaja para ti: son pesadas y dependen de las bibliotecas de terceros, especialmente GTK, que tiene muchas dependencias que hacen que sea un poco difícil distribuirlo embebido en tu software.

En cuanto a la creación binaria, sé que hay py2exe que convierte el código python en código ejecutable win32 (.exe) pero no estoy seguro de si hay algo similar para OSX. ¿Estás preocupado porque las personas pueden ver el código fuente o simplemente puedes agruparlo todo en un solo paquete? Si solo quiere agrupar todo lo que no necesita para crear un ejecutable independiente, puede crear fácilmente un instalador:

Crear distributable en python

Esa es una guía sobre cómo distribuir su software cuando está hecho.


http://Gajim.org para Windows usa Python y PyGtk. Puedes verificar cómo lo hicieron. Además, está PyQt para GUI (y wxpython se mencionó anteriormente).