当我尝试以下(在python 3中)时:
>>> import matplotlib.pyplot as pl
>>> pl.plot([1, 2, 3])
>>> pl.show()
我最后收到错误:
AttributeError: 'FontManager' object has no attribute 'ttf_lookup_cache'
但是,当我执行以下操作时,它可以工作:
>>> from matplotlib.font_manager import FontManager
>>> FontManager().ttf_lookup_cache
{}
但FontManager
构造函数需要一些时间(~1.5s),而第一个代码则不需要。
此外,上面的代码与python 2完全正常,我发现一些帖子提出类似的问题,如:
......但没有一个答案对我有用。
如果有帮助,我正在使用python 3.4.3和matplotlib
1.3.1开发Ubuntu 14.04.4。
答案 0 :(得分:1)
经过大量挖掘后,我意识到问题可能是我使用的matplotlib
的旧版本(使用apt-get install
安装)。我尝试删除它并使用pip
安装它并且它有效:
sudo apt-get remove python3-matplotlib
sudo pip3 install matplotlib
之后,我第一次导入matplotlib.pyplot
(关于构建字体缓存)时收到警告。现在一切正常。
使用matplotlib
的{{1}}的已安装版本为 1.5.1 (来自 1.3.1 ,使用pip3
)。< / p>