考虑以下简单的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.任何人都可以帮我理解这个问题吗?
谢谢!
问题是标准的Python解释器并不是基于如何处理图形用户界面的知识而构建的.没有详细说明,看起来matplotlib试图关闭一个不存在的线程.
http://matplotlib.org/users/shell.html上有关于原因的解释,并指出了有关变通方法的讨论.
最简单的答案是使用IPython,这是参考解释的matplotlib.如果这不是一个选项,你可能需要深入挖掘.
| 归档时间: |
|
| 查看次数: |
8384 次 |
| 最近记录: |