4

私は pyplot (backend:tkagg) を使用する python プログラムを持っています。このプログラムでは、いくつかのものを含む matplotlib が作成されます。プログラムを終了したいときは、すぐに次のように呼び出します。

plt.close('all')

シャットダウンします。奇妙なことに、プログラムは終了しません。

デバッガーでそれをたどると、すべてが完了した後、に戻ることがわかりました

class Show(ShowBase):
    def mainloop(self):
        Tk.mainloop()

backend_tkagg.pyで、

に続く

if not is_interactive():
            self.mainloop()

同じファイルで、次に

def show(*args, **kw):
    global _show
    _show(*args, **kw)

pyplot.pyでは、 私はまだ pyplot ループにいるようです!

どうすれば正しく終了できますか?

ありがとう...

4

1 に答える 1

6

pyplotつまり、ループではなく、GUI ツールキットに関連付けられたメイン ループ (これは、GUI とのすべてのユーザー インタラクションを処理するループです) です。プログラムを呼び出しexit()て、オブジェクトのクリーンアップでTKオブジェクト/メインループを適切に破棄することは安全だと思います

関連する可能性があります: Python で Tks メインループを終了しますか?

于 2012-11-16T23:26:31.870 に答える