Windows Standalone GUI Programm erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Eltrox
User
Beiträge: 2
Registriert: Donnerstag 17. Juli 2014, 09:45

Hallo.

Ich möchte ein Windows GUI Programm erstellen, welches standalone auch auf Rechnern lauffähig ist, auf denen kein Python installiert ist.
Allerdings möchte ich das Rad auch nicht neu erfinden, und würde daher gerne einen Framework benutzen der mir viel Arbeit erspart. Es muss dann allerdings mit meinem Programm mitgeliefert werden.

Erste Versuche habe ich mit Kivy gemacht, da man damit auch für Linux und MacOS, und sogar für Smartphones Python Apps erstellen kann, was recht praktisch ist, wenn man mal in die Richtung etwas machen möchte. Die GPU Unterstützung und die Multimedia Funktionen (GStreamer) sind ebenfalls sehr nett.
Meine Applikation dient dazu, Bilder "einzufangen" (Desktop Screenshots, Zugriff auf Webcam, TV/Video Karte, Scanner) und auf einen Server hochzuladen (damit man z.B. nicht erst über die Scanner Software scannen muss und dann über einen File Upload Dialog per Browser hochladen muss), so dass ich von diesen Möglichkeiten auch Gebrauch mache.

Danach habe ich mit dem PyInstaller ein Windows Executable erstellt.
Soweit alles ganz nett, doch ich habe immer das Kivy Kommandozeilenfenster im Hintergrund. (Die .bat Datei, die die Umgebungsvariablen des Systems temporär setzt und das Python Script ausführt).
Da kann man zwar ein bisschen tricksen, damit es versteckt ausgeführt wird. Auf einem anderen, jungfräulichen Testsystem mit Windows Standardinstallation erscheint das Kommandozeilenfenster jedoch wieder. Das möchte ich dem User nicht zumuten.

Der nächste Versuch war, dass ich mit Visual Studio einen kleinen "Launcher" erstellt habe, der auch als Exe Datei kompiliert ist und den Kivy und meine .py Datei nachlädt und ausführt. Das klappt soweit schon recht gut. Da habe ich für mein kleines "Hallo Welt" Test-Programm von einigen KB Größe aber mehrere hundert MB "Overhead" da ich das Visual C++ Redistributable Paket ja auch mitliefern muss, und dazu den Kivy mit über 100 MB auch noch.

Mit Visual Studio Express 2013 kann man auch direkt in Python programmieren laut meiner Recherche. Doch das habe ich noch nicht selbst ausprobiert. Das steht noch aus. Kann man damit auch standalone ausführbare Python Programme für Windows erstellen?

Oder würdet ihr mir etwas anderes empfehlen?

Viele Grüße
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Eltrox hat geschrieben:Danach habe ich mit dem PyInstaller ein Windows Executable erstellt.
Soweit alles ganz nett, doch ich habe immer das Kivy Kommandozeilenfenster im Hintergrund.
Ich kenne das Problem von py2exe: Wenn man von einer py-Datei eine exe erstellt, dann hat man im Hintergrund die "Dos-Box", wenn man jedoch von einer pyw-Datei eine exe erstellt, dann ist die "Dos-Box" weg.
a fool with a tool is still a fool, www.magben.de, YouTube
Eltrox
User
Beiträge: 2
Registriert: Donnerstag 17. Juli 2014, 09:45

Ja, das stimmt. Ein Problem wäre damit schonmal behoben.

Ein weiteres Problem ist, dass ich gerne gleich auf Python 3 gehen würde, und nicht noch auf die 2.x Version.
Leider arbeitet bei mir der py2exe mit Python 3 und Kivy nicht richtig.

Wenn ich es über meine Launcher.exe mache, und die kivy.bat und mein Script per System() aufrufe, klappt es, ohne dass ich den ganzen py2exe kram machen muss.
Allerdings brauch ich für den Launcher dann die C++ Laufzeitkomponenten auch noch, zusätzlich zum Kivy.
Da kann ich für ein kleines Script gleich ne ganze CD mit Installer brennen, und die CD ist dann auch gut voll.
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

Eltrox hat geschrieben:Allerdings brauch ich für den Launcher dann die C++ Laufzeitkomponenten auch noch, zusätzlich zum Kivy.
Da kann ich für ein kleines Script gleich ne ganze CD mit Installer brennen, und die CD ist dann auch gut voll.
Naja, gut, das ist doch das Problem von solchen bequemen Bibliotheken/interpretierten Programmiersprachen, oder? Entweder man setzt voraus, dass der Anwender das alles schon drauf hat (Dann bräuchte man ja nur die Python-Datei zu verteilen, die nur ein paar Kilobyte groß ist), oder man geht auf Nummer sicher und liefert jede mögliche Bibliothek mit, vergrößert damit aber auch das Programm um 10000%.

Oder du schreibst direkt in MFC (Stimmt das? Kenne mich damit nicht so gut aus).
Ene Uran
User
Beiträge: 125
Registriert: Sonntag 17. September 2006, 20:14
Wohnort: Hollywood

cx-freeze ist auch fuer Python3 brauchbar:
http://cx-freeze.sourceforge.net/
Atomkraftwerkaktienbesitzer
Antworten