python-Programm als .exe

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.
-dude-
User
Beiträge: 16
Registriert: Samstag 25. Februar 2012, 09:43

Mittwoch 7. März 2012, 18:25

Hallo zusammen,

ich habe in PyQt ein Program geschrieben. Nun würde ich das gerne für Windoof-User benutzbar machen. Wie würdet ihr das angehen? Würdet ihr ein .exe-FIle daraus machen? Falls ja, nehmt ihr py2exe? Funktioniert das mit Qt? Falls nicht wie würdet ihr dann vorgehen?

Danke schonmal,
Grüße
Rekrul
User
Beiträge: 78
Registriert: Dienstag 7. Dezember 2010, 16:23

Donnerstag 8. März 2012, 09:28

-dude- hat geschrieben:Würdet ihr ein .exe-FIle daraus machen?
Falls du nicht davon ausgehen kannst, dass python und alle Abhängigkeiten die dein Programm verwendet auf den Zielrechnern vorhanden sind und den Benutzern nicht zutrauen kannst / willst diese zu installieren, dann wird dir vermutlich nichts anderes übrig bleiben, als dein Programm zu 'freezen'.

Ob du nun Py2Exe, pyinstaller, cx_freeze, bbFreeze etc. verwendest bleibt dir überlassen und ist sicherlich auch ein wenig Geschmacksache. Ich persönliche nutze pyinstaller und bin damit sehr zufrieden.

Falls du mit diesen Kommandozeilentools nicht zurecht kommst, kannst du dir ja GUI2EXE anschauen. Ist allerdings nur eine GUI um die oben genannten tools ...
Benutzeravatar
snafu
User
Beiträge: 6072
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Donnerstag 8. März 2012, 10:40

Zumindest von PyInstaller weiß ich, dass er "damals" (etwa 1-2 Jahre her) ganz gut mit PyQt funtioniert hat. Würde folglich mal vermuten, dass es sich in der Hinsicht eher verbessert statt verschlechtert hat. ;)

PyIntaller verfolgt ja das Ziel, immer möglichst out-of-the-box (also ohne die Notwendigkeit irgendwelcher Konfigurationseinstellungen) benutzbar zu sein. Ich weiß nicht, wie das bei anderen "Freezern" aussieht.
Rekrul
User
Beiträge: 78
Registriert: Dienstag 7. Dezember 2010, 16:23

Donnerstag 8. März 2012, 11:38

Ich kann bestätigen, dass PyQt, matplotlib und numpy/scipy auch heute noch 'out-of-the-box' funktionieren.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 8. März 2012, 15:33

Rekrul hat geschrieben:Falls du nicht davon ausgehen kannst, dass python und alle Abhängigkeiten die dein Programm verwendet auf den Zielrechnern vorhanden sind und den Benutzern nicht zutrauen kannst / willst diese zu installieren, dann wird dir vermutlich nichts anderes übrig bleiben, als dein Programm zu 'freezen'.
Ach wieso, man kann doch einfach eine reguläre Python-Version mitliefern.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Donnerstag 8. März 2012, 16:34

@Leonidas: Und Qt, und PyQt, und… — das dann alles in der richtigen Reihenfolge installieren überfordert einige Endbenutzer und schreckt andere ab.
-dude-
User
Beiträge: 16
Registriert: Samstag 25. Februar 2012, 09:43

Donnerstag 8. März 2012, 16:50

Danke für eure Hilfe ich werde mir die ganzen Ideen angucken.
lunar

Donnerstag 8. März 2012, 17:59

@Leonidas: Außerdem kann man unter WIndows nicht bestimmen, mit welcher Python-Version ein Skript ausgeführt wird. Lieferst Du Dein Programm für Python 3 aus, und der Nutzer installiert später aus irgendwelchen Gründen Python 2, kann es passieren, dass Dein Programm dann plötzlich auch mit Python 2 gestartet wird.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 8. März 2012, 18:08

@BlackJack: Natürlich.
lunar hat geschrieben:@Leonidas: Außerdem kann man unter WIndows nicht bestimmen, mit welcher Python-Version ein Skript ausgeführt wird. Lieferst Du Dein Programm für Python 3 aus, und der Nutzer installiert später aus irgendwelchen Gründen Python 2, kann es passieren, dass Dein Programm dann plötzlich auch mit Python 2 gestartet wird.
Dafür kann man entsprechende Starter-Files machen. Ist schon nicht sonderlich kompliziert. Vorteil ist, dass sich das Skript wie beim Entwickler verhält, nicht so wie ein "gefreezed"-es Programm, wo manchmal Sachen wie ``__name__`` etc. sich unterschiedlich verhalten.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
-dude-
User
Beiträge: 16
Registriert: Samstag 25. Februar 2012, 09:43

Donnerstag 8. März 2012, 18:25

Also, ich verzweifle im Moment an meinen Windows-Fähigkeiten. Unter Linux ist es so einfach das Programm auszuführen. Alles installieren und python programm.py und fertig. Unter WIndows nix.. Ich hab Python 2.7 und PyQt4 installiert aber ich kann die Datei nicht ausführen.

Kann mir da jemand weiterhelfen?
lunar

Donnerstag 8. März 2012, 18:29

@-dude-: Ohne detaillierte Beschreibung und Fehlermeldung... kaum. Beschreibe also bitte, wie Du Python und PyQt4 installiert hast, wie Du das Programm startest, und welche Fehlermeldung auftritt, wenn Du das Programm aus der Konsole startest (andernfalls siehst Du die Fehlermeldung nicht!).
Benutzeravatar
snafu
User
Beiträge: 6072
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Donnerstag 8. März 2012, 22:26

lunar hat geschrieben:@Leonidas: "Starter-File"?!
Denke mal, es ist eine Batchdatei gemeint, die explizit eine bestimmte Interpreterversion aufruft. Das setzt allerdings voraus, dass analog zur Vorgehensweise unter Linux irgendwelche Softlinks mit entsprechenden Benennungen erstellt wurden, was wohl eher unwahrscheinlich ist...
Campionissimo
User
Beiträge: 102
Registriert: Montag 28. März 2011, 07:50

Freitag 30. März 2012, 08:23

Hallo,
ich habe ein .EXE Datei von meinem Python script erstellt.
Wenn ich diese exe an einem anderen Computer ausführen möchte geht es nicht, klar.
Wie könnte ich die fehlenden Module, wie wx in die exe miteinbinden ?
Zusätzlich noch die Frage kann static.bitmap auch in die exe miteinbinden?

Vielen Dank
Benutzeravatar
snafu
User
Beiträge: 6072
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Freitag 30. März 2012, 09:26

Campionissimo hat geschrieben:Wenn ich diese exe an einem anderen Computer ausführen möchte geht es nicht, klar.
An sich nicht so klar. Denn gerade für die Ausführung des Skriptes auf fremden Rechnern (wo die Abhängigkeiten, wie z.B. installiertes Python, nicht erfüllt sind), sollte mit der fertigen EXE problemlos funktionieren. Sonst macht das ganze ja auch relativ wenig Sinn. Hast du PyInstaller mal probiert?
Antworten