EXE-Datei mit PyInstaller 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.
BlackJack

@Modding: Ich würde mal sagen Du versuchst da etwas was nicht so einfach geht und wofür man wirklich Ahnung haben muss von dem was man da tut. Das ist IMHO kein sinnvolles Anfängerprojekt und es löst IMHO auch kein wirklich dringliches Problem. Für einfache Sachen braucht man kein zusätzliches Programm, bei vielen etwas komplexeren Projekten muss man irgendwelche Problemchen umschiffen die ein Programm nicht automagisch lösen kann, und vor allem braucht man beim Entwickeln und Testen eines Programms ja sowieso ein Python auf dem System. Was soll dann ein Programm zum Umwandeln in eine EXE ohne das man Python installiert hat?

Und ich folge der Vermutung von Sr4l das Du wahrscheinlich einer der ersten bist die versuchen PyInstaller mit PyInstaller in eine EXE zu verpacken. Da wäre zuerst mal die Frage ob das überhaupt geht und vorgesehen ist dass das geht.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich stimme meinen Vorpostern zu: Eine One-File-EXE ist vornehmlich für DAUs gedacht, die einfach nur wollen, dass ein Programm läuft und keine Lust bzw Kompetenz haben, um sich darum zu kümmern, dass irgendwelche Abhängigkeiten wie Laufzeitumgebungen und diverse Bibliotheken gesondert installiert werden.

Ein Programm, welches (vermutlich mit einer grafischen Oberfläche) Python-Skripte zu einer EXE konvertiert und dafür im Hintergrund PyInstaller benutzt, richtet sich keinesfalls an den typischen DAU, sondern an Entwickler. Die haben sinnigerweise bereits Python auf ihrem Rechner installiert, weil sie damit ja ihr Programm entwickelt und getestet haben. Und die sollten auch fähig sein, `pip` anzuwenden, um Python-Pakete samt Abhängigkeiten automatisiert installieren zu lassen. Wenn du denen das Leben leichter machen willst, dann beschäftige dich lieber mit der Funktionsweise von `pip` und liefere dein Projekt so aus, dass es bequem mit allen Abhängigkeiten via `pip` installiert werden kann.
Modding
User
Beiträge: 30
Registriert: Sonntag 28. Februar 2016, 21:11

Sr4l hat geschrieben: 1. Welcher Benutzerbibliothek?
Die Programm Packer müssen die Abhängigkeiten (sprich benutzen Bibliotheken) suchen und dann kopieren.
Diese Benutzerbibliotheken die du in deiner Antwort vorher angesprochen hast.
Sr4l hat geschrieben:2. Nein. Ich schätze PyInstaller ist schlicht so programmiert sich selbst nicht mit zu packen.

Und wenn ich meine EXE mit py2exe generieren würde? Würde das diese vielleicht mit dem PyInstaller packen?
BlackJack hat geschrieben:Was soll dann ein Programm zum Umwandeln in eine EXE ohne das man Python installiert hat?
snafu hat geschrieben:...sondern an Entwickler. Die haben sinnigerweise bereits Python auf ihrem Rechner installiert, weil sie damit ja ihr Programm entwickelt und getestet haben.
Ja also es hat bestimmt schon jeder der das Programm benutz Python auf dem PC, weil das Programm ja einfach nur die lästigen cmd eingaben sparen soll und der Benutzer einfach nur sein Programm und Icon und ein paar kleine Einstellungen über Check-boxen macht und den Rest das Programm übernimmt.
Das mit kein Python auf dem PC war nur zur Verdeutlichung, dass ich alles was das Programm benötigt um einwandfrei zu funktionieren gerne in eine EXE stecken würde und es dann unabhängig von der Pythonversion auf dem PC des Anwenders läuft, weil ich befürchte immer, dass das Programm wenn es abhängig von der Laufzeitumgebung des Benutzer ist, dass es zu Kompatibilitätsproblemen kommen kann.
BlackJack hat geschrieben:Und ich folge der Vermutung von Sr4l das Du wahrscheinlich einer der ersten bist die versuchen PyInstaller mit PyInstaller in eine EXE zu verpacken. Da wäre zuerst mal die Frage ob das überhaupt geht und vorgesehen ist dass das geht.
Ja das kann schon gut sein, weil mir passiert sowas öfters...
Leider ist die Frage nicht so schnell beantwortet weil ich habe auch noch nichts hilfreiches zu meinem Problem im Internet gefunden....
snafu hat geschrieben:`pip` und liefere dein Projekt so aus, dass es bequem mit allen Abhängigkeiten via `pip` installiert werden kann.
Kann man darüber auch ein "grafisches Programm" ausliefern?
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Modding: Du willst also eine Oberfläche für PyInstaller schreiben. Dann sollte natürlich der eingesetzte PyInstaller zur installierten Python-Version kompatibel sein und nicht zu der Version, die Deine Oberfläche einsetzt, was darauf hinaus laufen würde, dass Deine Oberfläche PyInstaller als externes Programm aufruft und damit nicht mehr in Deine Oberfläche eingebunden sein kann/muß.
Modding
User
Beiträge: 30
Registriert: Sonntag 28. Februar 2016, 21:11

Sirius3 hat geschrieben:@Modding: Du willst also eine Oberfläche für PyInstaller schreiben. Dann sollte natürlich der eingesetzte PyInstaller zur installierten Python-Version kompatibel sein und nicht zu der Version, die Deine Oberfläche einsetzt, was darauf hinaus laufen würde, dass Deine Oberfläche PyInstaller als externes Programm aufruft und damit nicht mehr in Deine Oberfläche eingebunden sein kann/muß.
Ja das schon so läuft es ja im Moment. Aber genau das will ich ja nicht, weil da muss der Nutzer das ja erst alles installieren... :|
BlackJack

@Modding: Ab hier drehen wir uns ein bisschen im Kreis. Der Benutzer ist ja in diesem Fall Programmierer, der muss also sowieso schon, ganz unabhängig von Deinem Programm, eine Menge installieren. Mindestens Python und die Bibliotheken die das Programm das er selber entwickelt benötigt. Dein Programm müsste er dann auch installieren. Bleibt also nur noch das er PyInstaller zusätzlich installieren müsste. Und an der Stelle muss man halt mal abwägen wie viel Aufwand man treiben möchte nur damit man dem Programmierer diese einzelne Installation erspart, also wohl ein ``pip install PyInstaller``. Da wäre für meinen Geschmack jeder Handschlag zu viel.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Modding hat geschrieben:
snafu hat geschrieben:`pip` und liefere dein Projekt so aus, dass es bequem mit allen Abhängigkeiten via `pip` installiert werden kann.
Kann man darüber auch ein "grafisches Programm" ausliefern?
Ja. Man kann die `setup.py` (die von `pip` bei der Installation automatisch aufgerufen wird) so schreiben, dass am Ende eine Datei, die den Programmablauf anstößt, im Verzeichnis für ausführbare Python-Skripte landet. Wenn man bei der Python-Installation (unter Windows) erlaubt hat, dass die PATH-Umgebungsvariable des Systems angepasst wird (wodurch z.B. der Befehl `python` von überall aufrufbar ist), dann findet er auch das Skript für dein Projekt und es sieht für den Anwender aus wie ein "normales" ausführbares Programm, falls du das meintest.
BlackJack

Wobei “grafische“ Programme nicht selten Abhängigkeiten haben die sich nicht per ``pip`` installieren lassen. Oder kann man die grossen GUI-Rahmenwerke (Gtk, Qt, wxWidgets, …) damit installieren? Und dann auch noch unter Windows?
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@BlackJack
``pip install PySide`` funktionierte bei mir unter Windows 10 ohne weiteres Zutun. Auch ein Testprogramm läuft. Bei PyQt geht es AFAIK nicht so einfach. Die anderen Frameworks habe ich nicht getestet.
Modding
User
Beiträge: 30
Registriert: Sonntag 28. Februar 2016, 21:11

Also noch mal zurück zum Thema...

Das was ich vorhabe geht also nicht, wenn ich das jetzt richtig verstehe oder? :(
BlackJack

@Modding: Vielleicht geht das, vielleicht aber auch nicht. Das müsstest Du jetzt halt herausfinden.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Modding hat geschrieben:Das was ich vorhabe geht also nicht, wenn ich das jetzt richtig verstehe oder? :(
Das ist bestimmt irgendwie machbar, nur sieht das keiner hier außer dir für wichtig bzw. überhaupt sinnvoll an, so dass niemand Erfahrung damit hat. Da musst du jetzt selber durch.
Antworten