Pregunta

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

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

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

Adición: He estado buscando en WxPython, pero he encontrado muchas historias de horror al empaquetarlo con cx_freeze y obtener binarios de más de 30 mb, y no tengo consejos reales sobre cómo en realidad hacer el empaque y cuán confiable es es.

¿Fue útil?

Solución

http://wiki.wxpython.org/CreatingStandaloneExecutables

No debería ser tan grande a menos que haya logrado incluir la versión de depuración de wx. Parezco recordar 4Mb para python.dll y similair para wx.

Otros consejos

Python tiene un kit de herramientas GUI integrado llamado TKinter que se basa en la biblioteca Tk de la programación TCL idioma. Es muy básico y no tiene todas las funcionalidades que esperas en Windows Forms o GTK, por ejemplo, pero si debes tener un kit de herramientas independiente de la plataforma, no veo otra opción teniendo en cuenta que tampoco quieres 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 bonitos y poderosos, pero tienen una gran desventaja para ti: son pesados ??y dependen de terceras bibliotecas, especialmente GTK, que tiene muchas dependencias que hacen que sea un poco difícil distribuirlo incrustado en su software.

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

Creación distribuible en python

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

http://Gajim.org para Windows usa python y PyGtk. Puedes comprobar cómo lo hicieron. Además, hay PyQt para GUI (y wxpython mencionado anteriormente).

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

Dicho esto:

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

wxPython también funciona bien con py2exe. Acabo de comprobar una aplicación que tengo; La distribución total llegó a alrededor de 11MB. La mayor parte de eso fueron los archivos wx DLL y .pyd, pero no veo cómo evitaría eso. Si está apuntando a Windows XP, necesita incluir un manifiesto en su setup.py o de lo contrario se verá feo. Consulte este correo electrónico para obtener más información.

He usado py2Exe por mi cuenta, es muy fácil (al menos para aplicaciones pequeñas).

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 DLL . Parece que son compatibles con los ejecutables de MacOS. Pagará una penalización de descompresión inicial cuando se carguen los archivos DLL por primera vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top