Probleme beim erstellen einer EXE Datei - kein Projekt ist in exe ausführbar

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
TimoB
User
Beiträge: 5
Registriert: Samstag 9. März 2024, 02:02

Hallo zusammen,

ich bin Timo und habe vor ein paar Tagen angefangen mit Python, also habt bitte etwas Geduld mit mir. Ich möchte es wirklich lernen.

Die letzten Tage habe ich mit Youtube Videos verbracht und mir in Python eine Oberfläche mit 2 Fenstern gebaut, mich in Menüerstellung versucht und wollte einfach mal wissen, wie es ausschaut wenn ich hierzu eine exe mache. Außer "Quit" naürlich alles ohne Funktion leider. Aber gut, wollte einfach mal schauen wie der Export funktioniert. OK, gibt nicht aus Python heraus, also wird es etwas komplizierter. Habe aber dann den aktuellen pyinstaller installiert.

Ein Projekt mit einem Label vor Tagen hatte mal geklappt. Aber alles andere was ich erstellt hatte nichts mehr. Es waren die Dinge, die ich im Tutorial nachgebaut hatte und diese sollten eigentlich laufen. Die ersten versuche eine EXE zu erstellen endeten nach dem Klick auf die ausführbare Datei mit:

pyinstaller die ordnungszahl 380 wurde in der dll nicht gefunden. Fettes rotes Critical Symbol dabei, schlecht.

Erneuter Export, aber ein paar Bilder gelöscht. Aber dafür kamen andere Meldungen die hauptsächlich meine png Dateien betrag bzw. betrifft, die ich im menüband in einem Fenster über tkinter verwende. Also kamen weiter die Meldungen, dass die Datei "copy.png nicht gefunden wurde. Ich meine, es war die, die ich anstelle dieser Feder oder was das sein soll in die Titelleiste gesetzt habe. Dann die ico Datei, die ich online umgewandelt hatte. Dann ein Hintergrundbild. :cry:

Daran sitze ich jetzt 5 Stunden. Alles installiert, pyinstaller verwendet, exe erstellt, angeklickt. Nichts passiert. Also vorher kamen Fehler, dass einige PNG Datein nicht geladen werden konnten, obwohl sie im Verzeichnis waren. (icon und ein Bild im Titelfenster). Diese nahm ich dann raus, auch den Code dazu und auf einmal war ein anderes Bild nicht auffindbar. Ich checke es einfach nicht. Habe es auch mit cx freeze oder wie das heißt versucht, aber das läuft gar nicht erst wirklich.

Dann habe ich alles deinstalliert und eine vorherige Version von Python installiert. (die letzte 11er Version) Aber hier das gleiche Problem.
Ich meine, ich habe nicht wirklich viel Code, der auch noch aus einem Tutorial kommt, und dort hat es auch geklappt.

Kann mir jemand helfen, ich verzweifle hier wirklich noch.

Habe ich vielleicht etwas bei der Installation falsch gemacht, Vergessen ein Paket zu installieren oder sowas?

Ja, was könnte ich posten was helfen würde...?

Und immer lese ich in den Fehlermeldungen was mit tkinter.

Starte ich die EXE, kommt die Eingabeaufforderung und verschwindet. Nachdem ich die Anwendung nach "Nach Button Quit" anhalten konnte, steht folgendes:
Traceback (most recent call last);
File "main.py", line 5, in <module>
File tkinter\__init__py", line 4146, in __init__
gleiche aber line 4093, in __init__
tkinter.TclError: couldnt open "close.png": no such file or directory

Ich habe das File 100 mal neu in den Ordner gepackt, in dem auch die main.py lag. Auch habe ich aus verschiedensten Ordner versucht, es ist immer ein andere Bild was nicht gefunden werden kann.

HHIIILLFFFEFEEEEEEE

Es nützt mir nichts eine Anwendung zu machen, die ich am ende nicht nutzen kann.

Hierzu hätte ich noch eine Bonusfrage bitte:
Sofern es mir in 12.649 Jahre gelingt etwas gescheites in Python zu entwickeln, muss die Anwendung immer über eine exe Datei gestartet oder installiert werden, oder eventuell auch über den Browser etc. Es geht hierbei darum, wenn ich kleine Tools für mich für die Arbeit mache, kann ich die aufgrund Sicherheitsrichtlinien wahrscheinlich gar nicht installieren. Webnutzung ginge da. Könnte man sowas auch über den Browser laufen lassen oder wäre hierfür js besser.

Bitte entschuldigt den langen Text, aber ich bin froh endlich eine deutsche Hilfeseite gefunden zu haben.

Danke euch vorab und liebe Grüße
Timo

PS;
Habe ich eventuell etwas vergessen korrekt zu installieren? Derzeit habe ich mich für Python Version 3.11 7 oder 8 entschieden, da ich vorher die aktuellste drauf hatte 12.3? und ich dachte aufgrund der Fehler installiere ich mal eine Vorgängerversion.

Und was ich bis jetzt hier im Forum lesen konnte, gefiel mir gut. Ich hoffe ich bekomme das mit der exe hin, denn ich würde gerne weitermachen und sehe schon, hier gibt es sehr viele Leute mit viel Plan. :)

Nochmals Danke! :shock:
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

wie sieht denn dein Aufruf von `pyinstaller` aus? Hast du die Bilder mit angegeben?
Vielleicht ist es am Anfang etwas entspannter wenn du es mit `auto-py-to-exe` versuchst. Da läuft im Hintergrund auch `pyinstaller` aber du bekommst eine grafische Benutzeroberfläche.

Hilfreich ist immer der Code, bitte in Code-Tags posten. (Findest du im vollständigen Editor) Und immer die genauen Aufrufe von Programmen.

Eine *.exe benötigst du, wenn du dein Programm unter Windows starten willst und darauf kein Python installiert ist. Du kannst auch eine Webanwendung mit Python erstellen.
Aber vor all dem, müssen zumindest die Grundlagen etwas sitzen:
https://docs.python.org/3/tutorial/index.html
oder auf deutsch:
https://pytude.readthedocs.io/de/latest/


Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
TimoB
User
Beiträge: 5
Registriert: Samstag 9. März 2024, 02:02

Guten Morgen Dennis,

herzlichen Dank für Deine Rückmeldung.

Ich habe es jetzt mit der grafischen Oberfläche versucht, aber die gleichen Fehler erhalten.

Auto Py to Exe:
-Scriptpfad:
c:\Users\Timo\BBCode\ersteProgramm\main.py

- Eine Datei
- Fensterbasiert
- icon
nichts gewählt

Nach dem Start die gleiche Fehlermledung:
Running auto-py-to-exe v2.42.0
Building directory: C:\Users\Timo\AppData\Local\Temp\tmp8lp6c1ls
Provided command: pyinstaller --noconfirm --onefile --windowed "C:\Users\Timo\BroCode\Protokoll_02\main.py"
Recursion Limit is set to 5000
Executing: pyinstaller --noconfirm --onefile --windowed C:\Users\Timo\BroCode\Protokoll_02\main.py --distpath C:\Users\Timo\AppData\Local\Temp\tmp8lp6c1ls\application --workpath C:\Users\Timo\AppData\Local\Temp\tmp8lp6c1ls\build --specpath C:\Users\Timo\AppData\Local\Temp\tmp8lp6c1ls

Dann erneut versucht und alle Bilder manuell hinzugefügt und es fehlt schon wieder das gleiche Bild.

oben startete die Exe nicht sondern es kam ein Fehlerfenster, hier unten beim 2. Versuch öffnete zwar die Konsole kurz, aber schloss sich wieder. Man konnte aber ebenfalls lesen, das sdie entsprechende png Datei fehlt. Selbst als ich den Code zu diesem png rausgenomen habe, fehlte einfach eine andere png datei.

VG
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TimoB: Wenn die Bilder im Quelltext relativ angegeben sind, dann bezieht sich das auf das aktuelle Arbeitsverszeichnis und das muss halt nicht das Verzeichnis sein, in dem das Python-Programm liegt. Auch ohne EXE muss das nicht so sein. Darum gibt man normalerweise die Bilder in Bezug auf das Python-Modul an in dem man den Wert von `__file__` verwendet um das Verzeichnis zu bestimmen. `__file__` ist in jedem Python-Modul definiert (das aus einer Datei erstellt wurde). Kann sein, dass man da bei PyInstaller-EXEn noch was beachten muss, das steht aber sehr sicher in der Dokumentation zu PyInstaller.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
TimoB
User
Beiträge: 5
Registriert: Samstag 9. März 2024, 02:02

Hallo blckjack,

ah, da lese ich in deiner Nachricht was, was auch in meiner neuen Fehlermeldung steht.

Erneuter Versuch:
Console öffnet sich kurz - zeigt an:

Traceback (most recent call last)
File "main.py", line 37, in <module>
File "tkinter\__init__.py", line 4145, in __init__
File "tkinter\__init__py", line 4092, in __init__
tkinter.TclError: couldn´t oopen "new.png": no such file or directory
[19988] Failed to execute script "main" due to unhandle exeption!

Ich habe alle Zeilen mit dem Logo auskommentiert und es wird in Python auch nicht angezeigt. Und meine "Anwendung" läuft dort.
hm.

Hm, ich hatte es genau so gemacht, wie bei dem Typen im Video und dort klappte es.
Jetzt muss ich schauen wie ich den Wert angebe :D :D

Aber schon mal danke für den Hinweis. Meine obige Fehlermeldung legt ja Nahe, dass Du sehr nah dran bist mit Deinem Thread.
Ich schaue mal, wie ich das lösen kann. Danke dir
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

@TimoB: Wall of Text in Prosaform sind in der Regel eine schlechte Form der Problembeschreibung. Zeig Code, der nicht funtkionert, zeig die dazu gehörige Fehlermeldung, was du erwartest und was stattdessen passiert.

Hier ist ja bereits der Hinweis gefallen: Lies Dokumentationen. Pyinstaller erklärt dort länglich, wie mit externen Resourcen umgegangne werden muss.
Dazu muss man verstehen, was Pyinstaller grundsätzlich tut - und auch das erklären sie dort umfangreich.

Zu deinen verstreuten Fragen in deiner Geschichte:
Es braucht überhaupt keine .exe um eine Python Anwendung zu starten. Es braucht einen Python Interpreter. Pyinstaller bündelt nur den Intrpreter und deine Anwndung in ein Archiv und der Funktionalität das zu entpacken und zu starten (onefile) bzw. liefert eine Mini-Exe die nur den Interpreter startet. Der Standard, wie man Anwendungen verteilt ist das eher nicht. Das kommt auf den Kontext an. Gerne sind Programme auch einfach in einem Package Index und werden mit pip installiert.
Eine Webanwendung ist etwas völlig anderes als eine GUI Anwendung mit Tk.
Im Browser programmiert man in JavaScript, alles andere ist wenig zielführend.
Zuletzt geändert von sparrow am Samstag 9. März 2024, 10:33, insgesamt 1-mal geändert.
TimoB
User
Beiträge: 5
Registriert: Samstag 9. März 2024, 02:02

Hey Sparrow,

ja, was meinst du was ich seit Stunden und seit gestern mache?
Aber Danke für den erneuten Hinweis.
Das Forum war ja eigentlich der letzte Ausweg.
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Auf jeden Fall zeigst du keinen Code, der nicht funktioniert.
TimoB
User
Beiträge: 5
Registriert: Samstag 9. März 2024, 02:02

Der aus meiner main?
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TimoB: Ein minimales Code-Beispiel welches das Problem aufzeigt und was Du genau machst um daraus dann eine EXE zu erstellen. Also wahrscheinlich einfach nur ein Fenster das ein Bild in einem Label anzeigt, und die Ein- und Ausgaben in der Eingabeaufforderung 1:1 in einen Beitrag kopiert. So dass man nachvollziehen kann was Du genau machst und wo das Problem dann auftritt.

Ansonsten steht zu `__file__` etwas in der PyInstaller-Dokumentation was man über das Inhaltsverzeichnis leicht finden kann. Mittlerweile scheint dieser übliche Weg auch in One-File-EXEn zu funktionieren, so dass man dort nicht mehr zwischen ausführen des Quelltextes und der EXE unterscheiden muss wie früher.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten