2012-10-01 27 views
7

Mi pregunta es sobre la facilidad de distribuir la aplicación GUI en las plataformas (Mac/Linux/Windows), y quiero saber cuál facilita el trabajo del usuario .Python GUI App Distribution: escrito en wxPython, TKinter o QT

Mi comprensión actual es que la aplicación Tkinter es la más fácil para los usuarios (para instalar) porque mientras el usuario tenga instalado Python en su caja, mi aplicación debería estar lista para ejecutarse en esa caja.

Para la aplicación GUI escrita en wxPython o pyQT, el usuario necesita instalar primero wxWidget o QT en su cuadro, que es un paso adicional, y luego instalar mi aplicación GUI. (Pero mi caja de Ubuntu parece tener las bibliotecas wxwidget y QT instaladas por defecto, ¿es que una norma o simplemente una distribución de Ubuntu es más amigable para los usuarios? Supongo que Windows y Mac probablemente no las proporcionan por defualt, es decir, los usuarios necesitan para descargarlos e instalarlos como un paso adicional)

+2

no hay garantía de que tkinter estarán disponibles sólo porque es Python. Es un módulo de extensión, por lo que se puede dividir en un paquete separado. La distribución de Mandriva Linux hace esto, y probablemente haya otros. – ekhumoro

Respuesta

8

Si está ejecutando Kubuntu, PyQt se instalará de manera predeterminada. La mayoría de las distribuciones de linux tendrán una de PyGtk o PyQt instalada por defecto. Probablemente, WxPython se instaló en su buzón de Ubuntu como una dependencia de algún otro paquete de su sistema.

Si su mercado objetivo es Linux, puede crear un paquete de deb o rpm que se encargue de las dependencias de su aplicación.

Para Windows y Mac (e incluso Linux Si usted está tan inclinado) se podría agrupar el intérprete de Python con su aplicación y es bibliotecas en un formato ejecutable nativo, tales como .exe o .elf uso de las bibliotecas como cx_freeze, py2exe y py2app. Una vez hecho esto, su usuario no tendrá que instalar python o cualquiera de sus bibliotecas.

+6

[PyInstaller] (http://www.pyinstaller.org/) es multiplataforma y es compatible con muchas bibliotecas de terceros como PyQt, wxPython out-of-the-box – jfs

+0

PyInstaller funciona muy bien también. – prabu

4

Tkinter es el único que se incluye con Python. wxPython y pyQT necesitan las bibliotecas wxWindows o QT y las bibliotecas wxPython o pyQT que se instalarán en el sistema.

Sin embargo, Tk no se ve muy bien. Si ya está haciendo que el usuario instale Python, también podría hacer que instale las bibliotecas. (O tal vez incluya un instalador o algo similar).

+0

Creo que el comentario sobre el aspecto de Tk está fuera de lugar aquí. La pregunta no es sobre qué kit de herramientas elegir, sino cuáles son las opciones de implementación. Además, el aspecto de Tk es muy subjetivo, por lo que desvirtúa la respuesta, IMO. –

+3

Además, con la nueva sub biblioteca de tkk de Tkinter (disponible en Python 2.7+ o en http: //pypi.python.org/pypi/pyttk), puede hacer que las aplicaciones de Tkinter se vean bastante bien. –

2

Si la aplicación va a ser multiplataforma, sugeriría WxWidgets (wxpython). Lo he usado varias veces y nunca ha sido un problema.

Sin embargo, debe crear diferentes instaladores para Windows, Mac y Linux. En Linux, use .deb o .rpm para encargarse de las dependencias.

En Windows, siempre he usado py2exe para crear un archivo exe. Py2exe funciona adjuntando el intérprete de python y las bibliotecas necesarias, en este caso wxWidgets.

Comprobar este enlace para más información: http://www.py2exe.org/

+1

Creo que el comentario sobre elegir wxWidgets está fuera de lugar aquí. La pregunta no es sobre qué kit de herramientas es el mejor, se trata de opciones de implementación. Decir "elijo X" cuando la pregunta no es sobre elegir "X" puede invitar a votos positivos y negativos sólo porque a alguien le gusta o no wxPython. Creo que la pregunta sería mejor si te mantienes en el tema de la implementación. Sin embargo, a menos que esté diciendo específicamente que wxPython es más fácil de implementar, en cuyo caso debe explicar por qué. –

Cuestiones relacionadas