我在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有关(因为它过去给了我其他问题),但我不知道从哪里开始。非常感谢任何帮助,如果我能提供更多信息,请告诉我。
答案 0 :(得分:1)
这可能不是严格意义上的NFS问题。
查看其this和source in this line(请注意,这是一个错误:它应该说"dvips failed"
,而不是"dvipng"
),似乎是外部命令dvipng
或dvips
失败。
所以有很多可能性。首先,您需要确定哪个外部程序是system()
。然后,您可能需要检查是否可以在PATH
环境变量中找到此命令,或者文件本身是否正在崩溃该命令。尝试在该文件上手动运行dvip(ng|s)
,看看是否可以收到错误报告。
matplotlib
库通过捕获stdout
来捕获错误报告是正确的做法dvip(ng|s)
命令。我们知道os.system()
是邪恶的......
答案 1 :(得分:1)
同样的问题出现在最新的OpenSuse Leap VM中,并且还有最新的Anaconda堆栈。令我沮丧的是,这不是确定性的:批量生成图在非常不同的数据集中失败。它有助于插入
time.sleep(5)
现在问题的发生频率要低得多。仍然是PITA。
答案 2 :(得分:0)
如果没有正确维护的LateX软件包,matplotlib(至少通过Jupyter笔记本运行)显然无法保存LateX格式的图,即使它们显示正确。