Matplotlib退出错误

Ser*_*giy 5 python matplotlib

考虑以下简单的python代码:

import matplotlib.pyplot as mplot 
mplot.plot([1,2,3,4],[1,2,3,4])
Run Code Online (Sandbox Code Playgroud)

脚本运行时此脚本没有问题,但是如果我关闭python控制台(通过单击红色x),我会收到以下错误:

Fatal Python error: PyEval_RrestoreThread: NULL tstate
Run Code Online (Sandbox Code Playgroud)

如果我使用ctrl + Z退出python控制台不会发生此问题.在我看来,如果我存在第一种方式,有一些悬挂过程没有正确终止.我试过添加

mplot.close('all')
Run Code Online (Sandbox Code Playgroud)

到脚本的末尾,但我得到以下结果错误:

can't invoke "event" command: application has been destroyed while executing 
"event generate $w <<ThemeChanged>>"
(procedure "ttk::ThemeChanged" line 6)
invoke from within
"ttk::ThemeChanged"
Run Code Online (Sandbox Code Playgroud)

我正在运行Python 3.3 x86.任何人都可以帮我理解这个问题吗?

谢谢!

hol*_*web 5

问题是标准的Python解释器并不是基于如何处理图形用户界面的知识而构建的.没有详细说明,看起来matplotlib试图关闭一个不存在的线程.

http://matplotlib.org/users/shell.html上有关于原因的解释,并指出了有关变通方法的讨论.

最简单的答案是使用IPython,这是参考解释的matplotlib.如果这不是一个选项,你可能需要深入挖掘.