2017-07-20 5 views
0

Mein Skript läuft reibungslos. Nach dem Kompilieren mit Pyinstaller, dem Starten der .exe und dem Klicken auf die Start-Schaltfläche wird die GUI jedoch erneut geöffnet und stürzt ab.Python Tkinter mit Pyscreenshot Skript läuft nicht nach dem Kompilieren mit Pyinstaller

def grabberfunc(*args): 
    im = ImageGrab.grab() 
    savedir=str(mappa) 
    savefile="Screenshot_"+str("{:%Y_%m_%d-%H_%M_%S}".format(datetime.datetime.now()))+".png" 
    savedirfile=join(savedir,savefile) 
    im.save(str(savedirfile)) 

def scanning(): 
    interval=deftimeInput.get() 
    if running: 
     grabberfunc() 
    root.after(int(interval)*1000, scanning) 

if __name__=='__main__': 
    root = tkinter.Tk() 
    ... 

Es ist eine grundlegende GUI mit 2 Tasten: 'Start' setzt die Variable 'True' 'aktiviert', die 'Stop' umgekehrt. Wenn das Skript ausgeführt wird, wird die GUI nicht erneut geöffnet und wird so ausgeführt, wie ich es möchte.

+0

Können Sie bitte die .exe von der Befehlszeile ausführen? Dadurch bleibt das Fenster geöffnet und Sie können Fehler sehen. – Repiklis

+0

Leider gibt es keine Fehler und Warnungen. Die exe läuft von der Kommandozeile, die nächste Eingabeaufforderung erscheint. Wenn ich auf die Schaltfläche 'Start' klicke, erscheint die GUI erneut, jedoch gibt es keine Warnungen. – gabesz

+0

Wenn ich die Exe in Debug ausführen, habe ich genau die gleichen Nachrichten in der Befehlszeile, wenn die GUI wieder öffnet. Könnte es in Verbindung mit dem rekursiven Aufruf in der "Scanning" -Funktion stehen? – gabesz

Antwort

0

Endlich die Lösung gefunden.

Anstatt das pyscreenshot Modul zu importieren, das ImageGrab Modul sollte der richtige Import ist also von PIL

importiert werden:

from PIL import ImageGrab 

Nach dem Kompilieren des Skripts von pyinstaller, die exe läuft gut.

Verwandte Themen