2017-07-20 17 views
0

スクリプトはスムーズに実行されます。しかし、Pyinstallerでコンパイルし、.exeを起動してスタートボタンをクリックすると、GUIが再び開き、クラッシュします。PyscreenshotスクリプトによるPython Tkinterは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() 
    ... 

2つのボタンを持つ基本的なGUIがあります:「スタート」変数「真」「実行する」、「stop」をその逆を設定します。 スクリプトを実行すると、GUIが再び開かず、必要に応じて実行されます。

+0

コマンドラインから.exeを実行できますか?これによりウィンドウが開いたままになり、エラーが表示されます。 – Repiklis

+0

残念ながら、エラーや警告はありません。 exeはコマンドラインから実行され、次のプロンプトが表示されます。 [スタート]ボタンをクリックすると、GUIは再び表示されますが、警告は表示されません。 – gabesz

+0

私がデバッグでexeを実行すると、GUIが再び開いたときにコマンドラインに正確に同じメッセージが表示されます。 'スキャン'関数の再帰呼び出しと関連しているかもしれませんか? – gabesz

答えて

0

最後に解決策が見つかりました。

は、代わりにpyscreenshotモジュールをインポートすると、ImageGrabモジュールは、だから、正しいインポートがあるPIL

からインポートする必要があります。

from PIL import ImageGrab 

pyinstallerしてスクリプトをコンパイルした後、exeファイルは正常に動作します。

関連する問題