2012-10-01 4 views
7

La mia domanda riguarda la facilità di distribuzione dell'applicazione GUI attraverso le piattaforme (Mac/Linux/Windows), e voglio sapere quello che rende più facile il lavoro dell'utente .Distribuzione app della GUI Python: scritta in wxPython, TKinter o QT

La mia attuale comprensione è che l'app Tkinter è la più semplice per gli utenti (da installare) perché se l'utente ha installato un Python nella sua scatola, la mia applicazione dovrebbe essere pronta per essere eseguita su quella casella.

Per l'applicazione GUI scritta in wxPython o pyQT, l'utente deve prima installare wxWidget o QT nella sua casella, che è un passaggio aggiuntivo, quindi installare la mia app GUI. (Ma la mia casella Ubuntu sembra avere le librerie wxWidget e le librerie QT installate di default, è che una norma o solo una distro di Ubuntu è più amichevole per gli utenti? Suppongo che Windows e Mac probabilmente non le forniscano per defualt, cioè gli utenti hanno bisogno per scaricarli e installarli come passaggio aggiuntivo)

+2

Non c'è alcuna garanzia che tkinter sarà disponibile solo perché Python è. È un modulo di estensione e quindi può essere diviso in un pacchetto separato. La distribuzione Mandriva Linux fa questo, e probabilmente ce ne sono altri. – ekhumoro

risposta

8

Se stai usando Kubuntu, PyQt verrà installato di default. La maggior parte delle distro di Linux avrà uno di PyGtk o PyQt installato di default. WxPython è stato probabilmente installato nella tua casella Ubuntu come dipendenza per qualche altro pacchetto nel tuo sistema.

Se il tuo mercato di riferimento è Linux, puoi semplicemente creare un pacchetto deb o rpm e questo si occuperà delle dipendenze per la tua applicazione.

per Windows e Mac (e anche Linux, se sei così inclinato) si potrebbe impacchettare l'interprete Python con l'applicazione ed è librerie in un formato eseguibile nativo quali come .exe o .elf utilizzando librerie come cx_freeze, py2exe e py2app. Una volta eseguita questa operazione, l'utente non dovrà installare python o una qualsiasi delle tue librerie.

+6

[PyInstaller] (http://www.pyinstaller.org/) è multipiattaforma e supporta molte librerie di terze parti come PyQt, wxPython out-of-the-box – jfs

+0

PyInstaller funziona egregiamente. – prabu

4

Tkinter è l'unico incluso in Python. wxPython e pyQT richiedono entrambe le librerie wxWindows o QT e per le librerie wxPython o pyQT da installare sul sistema.

Tuttavia, Tk non sembra molto bello. Se stai già facendo installare l'utente a Python, potresti anche far installare loro anche le librerie. (O forse include un programma di installazione o qualcosa del genere.)

+0

Penso che il commento sull'aspetto di Tk sia fuori luogo qui. La domanda non riguarda quale toolkit scegliere, ma quali sono le opzioni di implementazione. Inoltre, l'aspetto di Tk è altamente soggettivo, quindi toglie la risposta, IMO. –

+3

Inoltre, con la nuova sub-libreria ttk di Tkinter (disponibile in Python 2.7+ o http: //pypi.python.org/pypi/pyttk), puoi far sembrare le app Tkinter piuttosto buone. –

2

Se l'applicazione sarà multipiattaforma, suggerirei WxWidgets (wxpython). L'ho usato diverse volte e non è mai stato un problema.

Tuttavia, è necessario creare diversi programmi di installazione per Windows, Mac e Linux. In Linux, utilizzare .deb o .rpm per gestire le dipendenze.

In Windows, ho sempre utilizzato py2exe per creare un file exe. Py2exe funziona allegando l'interprete python e le librerie necessarie, in questo caso wxWidgets.

Controllare questo link per maggiori informazioni: http://www.py2exe.org/

+1

Penso che il commento sulla scelta di wxWidgets sia fuori luogo qui. La domanda non è su quale toolkit è il migliore, si tratta di opzioni di distribuzione. Dire "Scelgo X" quando la domanda non riguarda la scelta di "X" può invitare voti positivi e negativi semplicemente perché a qualcuno piace o non piace wxPython. Penso che la domanda sarebbe meglio se ti fossi fermato sull'argomento dello schieramento. A meno che, comunque, non stiate specificando che wxPython è più facile da implementare, nel qual caso dovreste spiegare il perché. –