使用matplotlib在NFS文件系统上保存数字

时间:2015-09-08 16:46:55

标签: python matplotlib nfs

我在RHEL 6.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有关(因为它过去给了我其他问题),但我不知道从哪里开始。非常感谢任何帮助,如果我能提供更多信息,请告诉我。

3 个答案:

答案 0 :(得分:1)

这可能不是严格意义上的NFS问题。

查看其thissource in this line(请注意,这是一个错误:它应该说"dvips failed",而不是"dvipng"),似乎是外部命令dvipngdvips失败。

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

BTW,来自链接源,如果我正确地读取了源(IIRTSC),我认为matplotlib库通过捕获stdout来捕获错误报告是正确的做法dvip(ng|s)命令。我们知道os.system()是邪恶的......

答案 1 :(得分:1)

同样的问题出现在最新的OpenSuse Leap VM中,并且还有最新的Anaconda堆栈。令我沮丧的是,这不是确定性的:批量生成图在非常不同的数据集中失败。它有助于插入

time.sleep(5)

现在问题的发生频率要低得多。仍然是PITA。

答案 2 :(得分:0)

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

相关问题