it-swarm.com.de

Windows-Pyinstaller-Fehler "Fehler beim Ausführen des Skripts" beim Klicken auf die App

Es fällt mir schwer, diesen Fehler zu überwinden, ich habe überall nach dieser Fehlermeldung gesucht und nichts scheint für meine Situation relevant zu sein:

"failed to execute script new-app" 

new-app ist mein Python-GUI-Programm. Wenn ich pyinstaller mit diesem Befehl ausführt:

pyinstaller.exe --onedir --hidden-import FileDialog --windowed --noupx new-app.py

Es funktioniert reibungslos. Wenn ich die Befehlszeile zum Ausführen des GUI-Programms ausführen, funktioniert es außerdem einwandfrei und die GUI wird mit diesem Befehl generiert:

.\dist\new-app\new-app.exe

Aber wenn ich hoffentlich zu dieser Datei gehe, um auf die App klicken zu können, um die GUI zu erhalten, wird mir der oben genannte Fehler angezeigt. Warum das?

Ich benutze Python2.7 und das Betriebssystem ist Windows 7 Enterprise.

Alle Eingaben werden dankbar sein und vielen Dank im Voraus.

16
aBiologist

Nun, ich denke ich habe die Lösung für meine eigene Frage gefunden, wie ich es gemacht habe:

Obwohl ich das Programm mit normalem Python-Befehl erfolgreich ausführen und pyinstaller erfolgreich ausführen konnte, konnte ich die App "new_app.exe" mit der in der Frage genannten Befehlszeile ausführen, die in beiden Fällen die GUI ohne Probleme anzeigt überhaupt. Nur wenn ich auf die Anwendung klicke, kann die GUI jedoch nicht angezeigt werden, und es wird kein Fehler generiert. 

Also habe ich einen zusätzlichen Parameter --debug im Befehl pyinstaller hinzugefügt und den Parameter --windowed entfernt, damit ich sehen kann, was tatsächlich passiert, wenn auf die App geklickt wird und ich herausfand, dass ein Fehler aufgetreten ist viel sinn, wenn ich es nachverfolgen, beklagte es grundsätzlich, dass "some_image.jpg" keine solche Datei oder Verzeichnis .

Der Grund, warum es sich beschwert und nicht beschwert hat, wenn ich das Skript von Anfang an ausgeführt habe oder sogar die Befehlszeile "./" verwendet habe, liegt darin, dass das Image der Datei im selben Pfad wie das Skript vorhanden war. Das Verzeichnis, in dem sich das App-Produkt befindet, hat das perfekte Gefühl, dass die Image-Datei nicht vorhanden ist. Daher habe ich sie grundsätzlich in das Verzeichnis dist verschoben, in dem sich die anklickbare App befindet.

19
aBiologist

Fügen Sie diese Funktion am Anfang Ihres Skripts hinzu:

import sys, os 
    def resource_path(relative_path):
        if hasattr(sys, '_MEIPASS'):
            return os.path.join(sys._MEIPASS, relative_path)
        return os.path.join(os.path.abspath("."), relative_path)

Verweisen Sie auf Ihre Datendateien, indem Sie die Funktion resource_path() wie folgt aufrufen:

resource_path('myimage.gif')

Dann benutze diesen Befehl:

pyinstaller --onefile --windowed --add-data todo.ico;. script.py

Weitere Informationen finden Sie auf dieser Dokumentationsseite .

3
FREE LEARNING

Falls jemand aus den anderen Antworten keine Ergebnisse erhält, habe ich ein ähnliches Problem durch Folgendes behoben:

  1. hinzufügen von --hidden-import-Flags nach Bedarf für fehlende Module

  2. bereinigen der zugehörigen Ordner und Spezifikationsdateien:

rmdir /s /q dist

rmdir /s /q build

del /s /q my_service.spec

  1. Ausführen der Befehle zur Installation als Administrator
0
JacobIRR

Ich bekam den gleichen Fehler und stellte fest, dass ich mein Skript mit Anaconda geschrieben hatte, aber pyinstaller versucht, das Skript auf reinem Python zu packen. Module, die nicht im Pythons-Bibliotheksordner vorhanden sind, verursachen dieses Problem. 

0
Fatih1923