2012-10-01 15 views
7

Meine Frage ist über die Leichtigkeit der Verteilung der GUI-App auf den Plattformen (Mac/Linux/Windows), und ich möchte diejenige, die den Benutzer am einfachsten macht .Python GUI App Verteilung: geschrieben in wxPython, TKinter oder QT

Mein derzeitiges Verständnis ist, dass Tkinter App ist die einfachste für die Benutzer (zu installieren), denn solange der Benutzer ein Python in ihrer Box installiert hat, sollte meine Anwendung bereit sein, auf dieser Box zu laufen.

Für GUI-Anwendungen, die in wxPython oder pyQT geschrieben wurden, muss der Benutzer zuerst wxWidget oder QT in ihrer Box installieren, was ein zusätzlicher Schritt ist, und dann meine GUI-App installieren. (Aber meine Ubuntu-Box scheint die wxWidget-Bibliotheken und QT-Bibliotheken standardmäßig installiert zu haben, ist das eine Norm oder nur Ubuntu-Distribution ist benutzerfreundlicher? Ich denke, Windows und Mac bieten sie wahrscheinlich nicht per defualt, dh die Benutzer brauchen um sie als zusätzlichen Schritt herunterzuladen und zu installieren)

+2

Es gibt keine Garantie, dass tkinter verfügbar sein wird, nur weil Python ist. Es ist ein Erweiterungsmodul und kann daher in ein separates Paket aufgeteilt werden. Die Mandriva Linux-Distribution macht das, und wahrscheinlich gibt es andere. – ekhumoro

Antwort

8

Wenn Sie Kubuntu ausführen, wird PyQt standardmäßig installiert. Die meisten Linux-Distributionen haben standardmäßig eine von PyGtk oder PyQt installiert. WxPython wurde höchstwahrscheinlich in Ihrer Ubuntu-Box als eine Abhängigkeit für ein anderes Paket in Ihrem System installiert.

Wenn Ihr Zielmarkt Linux ist, können Sie einfach ein Deb- oder RPM-Paket erstellen, das sich um die Abhängigkeiten für Ihre Anwendung kümmert.

Für Windows und Mac (und sogar Linux, wenn Sie so geneigt sind) können Sie den Python-Interpreter mit Ihrer Anwendung bündeln könnten und es Bibliotheken in ein native ausführbares Format, wie wie .exe oder .elf Bibliotheken wie cx_freeze verwenden, py2exe und py2app. Sobald dies erledigt ist, muss Ihr Benutzer weder python noch eine Ihrer Bibliotheken installieren.

+6

[PyInstaller] (http://www.pyinstaller.org/) ist Multiplattform und unterstützt viele Bibliotheken von Drittanbietern wie PyQt, wxPython out-of-the-box – jfs

+0

PyInstaller funktioniert auch gut. – prabu

4

Tkinter ist der einzige, der in Python enthalten ist. wxPython und pyQT benötigen beide wxWindows- oder QT-Bibliotheken und die Bibliotheken wxPython oder pyQT, die auf dem System installiert werden sollen.

Allerdings sieht Tk nicht sehr gut aus. Wenn Sie bereits Python installieren, können Sie die Bibliotheken auch installieren. (Oder fügen Sie ein Installationsprogramm oder etwas hinzu.)

+0

Ich denke, der Kommentar über das Aussehen von Tk ist hier fehl am Platz. Die Frage ist nicht, welches Toolkit ausgewählt werden soll, sondern welche Bereitstellungsoptionen es gibt. Plus, das Aussehen von Tk ist sehr subjektiv, so dass es von der Antwort, IMO, ablenkt. –

+3

Außerdem mit der neuen ttk-Unterbibliothek von Tkinter (verfügbar in Python 2.7+ oder unter http: //pypi.python.org/pypi/pyttk), können Sie Tkinter-Apps ziemlich gut aussehen lassen. –

2

Wenn die App plattformübergreifend ist, würde ich vorschlagen WxWidgets (wxpython). Ich habe es mehrmals benutzt und es war nie ein Problem.

Trotzdem sollten Sie verschiedene Installer für Windows, Mac und Linux erstellen. Verwenden Sie unter Linux .deb oder .rpm, um Abhängigkeiten zu verwalten.

In Windows habe ich immer py2exe verwendet, um eine exe Datei zu erstellen. Py2exe funktioniert durch Anfügen des Python-Interpreters und der benötigten Bibliotheken, in diesem Fall wxWidgets.

Überprüfen Sie diesen Link für weitere Informationen: http://www.py2exe.org/

+1

Ich denke, der Kommentar über die Auswahl von wxWidgets ist hier fehl am Platz. Die Frage ist nicht, welches Toolkit das beste ist, es geht um Bereitstellungsoptionen. Zu sagen "Ich wähle X", wenn die Frage nicht auf die Auswahl von "X" gerichtet ist, kann zu Up- und Down-Stimmen führen, einfach weil jemand wxPython mag oder nicht mag. Ich denke, die Frage wäre besser, wenn Sie beim Thema Bereitstellung bleiben würden. Es sei denn, Sie sagen ausdrücklich, dass wxPython einfacher zu implementieren ist. In diesem Fall sollten Sie erklären, warum. –