在NFS文件系统上使用matplotlib保存图形

2024-04-29 03:39:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我在RHEL6.7上通过Anaconda使用ipython笔记本。机器设置了一个NFS存储;即,df -P -T /home/USERNAME | tail -n +2 | awk '{print $2}'打印“NFS”。在

所以我想保存在ipython笔记本中创建的matplotlib图形。但是,调用savefig函数会产生这样的错误(我已经抑制了大部分错误):

RuntimeError: dvipng was not able to process the following file:
/home/USERNAME/.cache/matplotlib/tex.cache/3007d273a0b2642aa3abce6d3d640283.dvi
Here is the full report generated by dvipng: 

No dvipng error report available.

我怀疑这与NFS有关(因为它在过去给我带来了其他问题),但除此之外,我真的不知道从这里该怎么办。非常感谢任何帮助,如果我能提供更多的信息,请告诉我。在


Tags: thereport机器cachedfhomematplotlib错误
3条回答

同样的问题也发生在最新的opensuseleap VM中,其中有一个也是最新的Anaconda堆栈。令我沮丧的是,这并不是确定性的:在非常不同的数据集上批量生成绘图失败。这有助于插入

time.sleep(5)

现在这个问题发生的频率要低得多。不过还是个皮塔。在

如果没有正确维护的LateX包,matplotlib(至少运行在Jupyter笔记本上)显然无法保存LateX格式的绘图,即使它们显示正确。在

严格来说,这可能不是NFS的问题。在

看看它的source in this linethis line(注意这里有一个错误:它应该说"dvips failed",而不是{}),似乎带有dvipng或{}的外部命令失败了。在

所以有很多可能性。首先,您需要弄清楚哪个外部程序正在被system()编辑。然后,您可能需要检查是否可以在PATH环境变量中找到该命令,或者文件本身是否正在使该命令崩溃。尝试在该文件上手动运行dvip(ng|s),看看是否可以得到一个错误报告。在

顺便说一句,从链接的源代码中,如果我正确地读取了源代码(IIRTSC),我认为matplotlib库通过捕获dvip(ng|s)命令的stdout来捕获错误报告是不正确的。我们知道{}是邪恶的。。。在

相关问题 更多 >