我在一个更大的python程序中有matplotlibs savefig函数我正在写,我注意到每次调用savefig我得到这个RuntimeError。 http://imgur.com/sTdYI6p
如果我从命令提示符运行程序,我会收到文字说:
Fatal Python error: PyEval_RestoreThread: NULL tstate
只有在调用savefig时才会发生错误,而不是在我调用plt.show()的时候发生错误。此外,函数正在运行,因为创建了图并且程序没有停止运行。我已经将问题浓缩为一个显示它的小例子。我正在使用matplotlib 1.1.1在Windows 7上运行python版本2.7
import matplotlib.pyplot as plt
import numpy as np
def graph_results(save_file_location):
'''Graph the results'''
fig = plt.figure(figsize=(20, 18))
graph1 = fig.add_subplot(1,1,1)
graph1.plot(np.array([0, 1, 2]), np.array([1, 4, 3]), color="blue")
try:
fig.savefig(save_file_location)
except IOError:
print "\nInvalid Save File Location\n"
def main_func():
graph_results("garbage.png")
if __name__ == '__main__':
main_func()
我在google上发现了很多遇到相同或类似问题的人的结果,但我还没有找到原因或修复。
编辑: 根据评论建议,我已将matplotlib更新为1.3.1版,并运行如下代码:
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (15, 14))
我仍然收到同样的错误。