So möchten Sie eine Desktop-Anwendung in Python schreiben, Codel

Dies ist eine Übersicht über die besten Werkzeuge und die besten Ressourcen für den Aufbau von Desktop-Anwendungen in Python.

Das wichtigste zuerst. Sie können große Desktop-Anwendungen in Python bauen, und einige sind weit verbreitet (wie Dropbox). Aber Sie haben Ihre eigene Art und Weise viel mehr finden, als würden Sie mit dem Microsoft oder Apple SDKs. Der Vorteil ist, dass mit einem wenig legwork es angemessen zu verpacken, ist es durchaus möglich ist, eine Python-Anwendung zu schreiben, die auf allen wichtigen Plattformen funktionieren.







GUI-Toolkits

Das erste, was Sie wählen müssen, ist ein GUI-Toolkit.

So möchten Sie eine Desktop-Anwendung in Python schreiben, Codel

Qt Designer in Aktion

Ein paar Alternativen würde ich nicht empfehlen, wenn Sie einen Grund haben, sie zu bevorzugen: GTK auf Linux populär ist, aber es sieht hässlich auf anderen Plattformen. Die älteren pygtk Bindungen haben ausgezeichnete Dokumentation; das neuere pygobject System, die aktuellen Versionen von GTK und Python unterstützt, nicht (obwohl es wird immer besser). wx scheint eine gute Gemeinschaft zu haben, aber die Entwicklung ist langsam, und neue Projekte, die sie verwendet haben, könnten jetzt meist Qt zu holen scheinen.

Verpackung und Vertrieb

Dies ist wahrscheinlich der härteste Teil eine Anwendung in Python zu machen. Sie können ganz einfach Tools für Entwickler verteilen, wie Python-Pakete installiert werden pip verwenden, aber Endbenutzer im Allgemeinen nicht haben Python und pip bereits eingerichtet. Python-Pakete können, hängt auch nicht auf so etwas wie Qt. Es gibt eine Reihe von Möglichkeiten, um Ihre Anwendung und die Abhängigkeiten zu verpacken:







Linux Verpackung

Obwohl einige der Freeze-Tool können Linux-Binaries bauen, der bevorzugte Weg, Software zu verteilen ist ein Paket nur Ihre Anwendung enthält zu machen, die verwendeten Abhängigkeiten von Python und die Bibliotheken der Anwendung hat. So Ihr Paket enthält nicht alles, was es braucht, aber es sagt den Paket-Manager, was andere Stücke installiert werden muss.

Leider sind die Verfahren für diese Herstellung ziemlich komplex und Linux-Distributionen haben noch kein gemeinsames Paketformat. Die wichtigsten sind deb-Pakete, verwendet von Debian, Ubuntu und Mint und rpm-Pakete, verwendet von Fedora und Red Hat. Ich weiß nicht, von einer guten, einfachen Anleitung zur Verpackung von Python-Anwendungen für entweder - wenn Sie einen finden, oder man schreiben, lassen Sie es mich wissen.

Sie können Benutzer erhalten zu Ihrem Paket herunterzuladen und zu installieren, aber wenn Sie es wollen, den Paketmanager erhalten Updates durch, werden Sie müssen es in einem Repository hosten. Übermittlung Ihr Pakets an die wichtigsten Repositories der Distribution macht es am einfachsten für die Nutzer zu installieren, aber es bietet die Distribution Qualitätsstandards gerecht zu werden, und Sie können in der Regel nicht schieben neue Funktionen, um Menschen außer wenn sie die gesamte Verteilung aktualisieren. Einige Distributionen bieten Hosting für persönliche repos: Ubuntu PPA oder Fedora Fedorapeople Repositories. Sie können auch einen Repository auf Ihrem eigenen Server einrichten.

Wenn Sie nicht über alles, was zu denken, nur einen Tarball Ihrer Anwendung machen, und neben dem Download auf Linux-Benutzer erklären, was es erfordert.

Sonstiges

  • Threading. Wenn Ihre Anwendung etwas tut, das länger als etwa ein Zehntel einer Sekunde, sollten Sie es in einem Hintergrund-Thread tun, so dass Ihre UI einfrieren nicht auf. Achten Sie darauf, nur mit GUI-Elementen aus dem Haupt-Thread in Wechselwirkung treten, oder Sie können segfaults erhalten. Pythons GIL ist kein großes Thema hier: das UI-Thread nicht viel Python Bearbeitungszeit benötigen sollte.
  • Updates. Esky ist ein Framework für gefrorene Python-Anwendungen zu aktualisieren. Ich habe nicht versucht, aber es sieht interessant aus.






In Verbindung stehende Artikel