Matplotlib Savefig导致致命的python错误,但否则工作正常

时间:2014-07-17 20:51:42

标签: python python-2.7 matplotlib

我在一个更大的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))

我仍然收到同样的错误。

0 个答案:

没有答案