Frage

Ich brauche eine kleine und mittlere Desktop-GUI-Anwendung zu entwickeln, vorzugsweise mit Python als Sprache der Wahl aus Zeitgründen.

Was Entscheidungen GUI-Bibliothek habe ich die mir erlauben, meine Anwendung Standalone zu verteilen, vorausgesetzt, dass die Benutzer nicht über eine funktionierende Python-Installation und offensichtlich nicht über die GUI-Bibliotheken ich entweder bin mit?

Auch, wie würde ich mich über alles, was die Verpackung bis in Binärdateien von vernünftig Größe für jedes Ziel-OS? (Meine Hauptziele sind Windows und Mac OS X)

Addition: Ich habe bei WxPython gesucht, aber ich habe viele Horrorgeschichten von Verpackungen mit cx_freeze und bekommen 30mb + Binärdateien gefunden, und keine wirklichen Ratschläge, wie man auf wirklich tun, um die Verpackung und wie vertrauenswürdig es ist.

War es hilfreich?

Lösung

http://wiki.wxpython.org/CreatingStandaloneExecutables

Es sollte nicht sein, dass große, wenn Sie die Debug-Build von wx es geschafft haben, aufzunehmen. Ich scheine über 4 MB für die python.dll und similair für wx rememebr.

Andere Tipps

Python verfügt über einen integrierten GUI-Toolkit namens tkinter , die auf Tk-Bibliothek von TCL Programmierung basiert Sprache. Es ist sehr einfach und hat nicht alle Funktionen, die Sie in Windows Forms oder GTK zum Beispiel erwarten, aber wenn Sie plattformunabhängige Toolkit haben muss ich sehe keine andere Wahl daran nehmen, dass Sie auch, dass viel der binäre wachsen möchten nicht.

Tkinter ist nicht schwer, überhaupt zu verwenden, da es Millionen von Widgets / Steuerelemente und Optionen und ist der Standard-Toolkit in den meist Python-Distributionen haben tut, zumindest unter Windows, OS X und Linux.

GTK und QT sind schöner und mächtiger, aber sie haben einen einen großen Nachteil für Sie: Sie sind schwer und deppend auf dritte Bibliotheken, vor allem GTK, die eine Menge von Abhängigkeiten hat, dass es ein wenig schwer macht, es zu verteilen eingebettet in Ihrer Software.

Wie für die binäre Schöpfung Ich weiß, es py2exe ist die Python-Code konvertiert ausführbaren Code (.exe ist) auf win32, aber im nicht sicher, ob es etwas ähnliches für OSX ist. Sind Sie besorgt, weil die Menschen den Quellcode sehen können, oder nur so können Sie alle in einem einzigen Paket bündeln? Wenn Sie einfach alles bündeln wollen Sie nicht brauchen eine eigenständige ausführbare Datei zu erstellen, können Sie leicht ein Installationsprogramm erstellen:

Erstellen ausschüttbaren in Python

Das ist eine Anleitung, wie Sie Ihre Software zu verteilen, wenn es fertig ist.

http://Gajim.org für Windows verwendet Python und PyGtk. Sie können prüfen, wie sie es taten. Außerdem gibt es PyQt für GUI (und wxpython bereits erwähnt).

Ich habe keine Erfahrung im Aufbau von Stand-alone-Apps für jede Plattform als Windows.

Wie gesagt:

Tkinter: funktioniert mit py2exe. Python Megawidgets (eine „Erweiterungsbibliothek“ für Tkinter) funktioniert auch gut, aber es hat abgefahrene Dinge mit dynamischen Importen, so müssen Sie alle Komponenten in eine große Datei „pmw.py“ kombinieren, und fügen Sie es zu einem Projekt (na ja, Sie werden auch pmwblt.py und pmwcolor.py haben). Es gibt Anweisungen, wie diese irgendwo zu tun (entweder auf py2exe Wiki oder in der PMW-Dokumentation). Tix (eine Erweiterung Tk, dass Sie mit Tkinter verwenden) mit py2exe nicht funktioniert, oder zumindest, dass meine Erfahrung vor etwa vier Jahren war.

WxPython auch funktioniert gut mit py2exe. Ich habe nur eine App Ich habe; die gesamte Verteilung belief sich auf rund 11 MB. Das meiste davon war die wx DLLs und .pyd Dateien, aber ich kann nicht sehen, wie man das vermeiden würde. Wenn Sie Windows XP Targeting, müssen Sie ein Manifest in Ihrem setup.py aufzunehmen oder sonst wird es hässlich aussehen. Siehe diese E-Mail .

Ich habe verwendet Py2exe mich - es ist wirklich einfach (zumindest für kleine Anwendungen)

.

Die Kombination, die ich kenne: wxPython, py2exe, upx

Der Schlüssel Ihre letzte Sorge um die Größe der Verteilung zur Lösung wird unter Verwendung von upx die DLLs komprimieren . Es sieht aus wie sie MacOS ausführbare Dateien unterstützen. Sie erhalten eine anfängliche Dekompression Strafe zahlen, wenn die DLLs zuerst geladen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top