我创建了许多使用pylab.savefig保存的图,并观察到Python进程最终为C:\ Python27 \ Lib \ site-packages \ matplotlib \ mpl-data \ fonts \ ttf \ Vera提供了数百个文件句柄。 TTF。最终由于文件句柄太多而导致进程崩溃(此时通过“Process Explorer”查看Vera.ttf的句柄超过700个。)
我在档案中看到几个对matplotlib中旧泄漏的引用,但据我所知,它们应该由版本1.0.1解析。
在我的代码中,我反复调用pylab.close(“all”)以及pylab.close(figure_variable)和figure_variable.clear(),试图让matplotlib释放资源。
作为参考,我正在使用64位Windows的最新版本的Enthought python发行版。我可以通过以下方式复制问题:
for i in range(1000):
fig = pylab.figure()
pylab.plot(some_data)
fig.savefig(filename)
fig.clear()
pylab.close(fig)
if i % 10 == 1: pylab.close("all")
有人知道如何让matplotlib释放Vera.ttf上的句柄或避免重复加载同一个文件多次?根据我在Process Explorer中观察到的,它实际上是为每个绘图创建多个句柄。