gpt4 book ai didi

matplotlib - 有没有人在 Windows 7 版本 1.0.1 上看到 matplotlib 泄漏文件句柄(Vera.ttf)?

转载 作者:行者123 更新时间:2023-12-03 23:42:46 25 4
gpt4 key购买 nike

我创建了许多使用 pylab.savefig 保存的图,并观察到 ​​Python 进程最终为 C:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\Vera.ttf 生成了数百个文件句柄。最终,这会由于文件句柄过多而导致进程崩溃(此时通过“进程资源管理器”查看到 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 中观察到的,它实际上是为每个图创建多个句柄。

最佳答案

有几个待处理的拉取请求可以解决这个问题,其中一个将进入 Matplotlib v1.1.1(下一个稳定版本):见 #795#798两种方案,并参与#791这是 v1.1.1 候选版本测试的主题。

类似于 #795 中提出的修复程序已在 7 个月前应用于 git master 分支,因此,如果您正在使用,则不应再看到此问题。唯一需要注意的是它使用 with声明,因此不适用于 Python < 2.6

关于matplotlib - 有没有人在 Windows 7 版本 1.0.1 上看到 matplotlib 泄漏文件句柄(Vera.ttf)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6034462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com