KeyError:“ ItalicAngle”

时间:2018-08-06 10:55:03

标签: python matplotlib fonts

如果我尝试导入font_manager,则会出现此异常:

>>> from matplotlib import font_manager
Value error parsing header in AFM: ItalicAngle -11,31
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/matplotlib/font_manager.py", line 1325, in <module>
    _rebuild()
  File "/usr/lib64/python2.7/site-packages/matplotlib/font_manager.py", line 1312, in _rebuild
    fontManager = FontManager()
  File "/usr/lib64/python2.7/site-packages/matplotlib/font_manager.py", line 993, in __init__
    self.afmlist = createFontList(self.afmfiles, fontext='afm')
  File "/usr/lib64/python2.7/site-packages/matplotlib/font_manager.py", line 568, in createFontList
    prop = afmFontProperty(fpath, font)
  File "/usr/lib64/python2.7/site-packages/matplotlib/font_manager.py", line 485, in afmFontProperty
    if font.get_angle() != 0 or name.lower().find('italic') >= 0:
  File "/usr/lib64/python2.7/site-packages/matplotlib/afm.py", line 526, in get_angle
    return self._header[b'ItalicAngle']
KeyError: 'ItalicAngle'

可能是什么错误?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:有一个损坏的afm文件,该文件使用,而不是.

我发现损坏的afm文件是这样的:

find /usr/share/fonts -iname '*afm' | xargs grep -i ItalicAngle | grep ,
/usr/share/fonts/Type1/Calibri-LightItalic.afm:ItalicAngle -11,31

文件Calibri-LightItalic.afm已损坏。值-11,31是错误的,它必须为-11.31

由于matplotlib使用缓存,因此您可能需要删除此文件.matplotlib / fontList.cache才能再次看到该异常。