matplotlib在导入时需要时间

我刚刚升级到matplotlib (1.5.1)的最新稳定版本,每次我导入matplotlib时,都会收到以下消息:

 /usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment. warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.') 

总是停顿几秒钟

这是预期的行为? 之前是不是也一样,只是没有印刷的信息?

正如汤姆在上面的评论中所build议的,删除这些文件:

 fontList.cache fontList.py3k.cache tex.cache 

解决这个问题。 在我的情况下,这些文件是在:

 `~/.matplotlib` 

EDITED

几天前,消息再次出现,我删除了上述位置的文件没有任何成功。 我发现,正如T Mudau所build议的那样,文本caching文件的额外位置是: ~/.cache/fontconfig

确认Hugo的方法适用于Ubuntu 14.04 LTS / matplotlib 1.5.1:

  • 删除〜/ .cache / matplotlib / fontList.cache
  • 运行代码,再次发出警告(假设:正在重buildcaching正确)
  • 再次运行代码,没有更多的警告(最后)

在OSX Yosemite(版本10.10.15)上,以下工作适用于我:

  • 从这个目录中删除caching文件:〜/ .cache / fontconfig(根据tom的build议)
  • 也删除了〜/ .matplotlib中的.cache文件(根据Hugo的build议)

我使用sudo运行了python代码一次,它解决了我的警告。 现在运行得更快。 没有sudo的运行根本没有警告。

干杯

我运行了Python代码w。 sudo,它治愈了它…我的猜测是,没有写这张桌子的许可…祝你好运!

你好,你必须find这个文件:font_manager.py在我的情况下:C:\ Users \ gustavo \ Anaconda3 \ Lib \网站包\ matplotlib \ font_manager.py

和FIND def win32InstalledFonts(directory = None,fontext ='ttf'),并replace为:

def win32InstalledFonts(directory = None,fontext ='ttf'):“”“在指定的字体目录中search字体,或者在没有给定的情况下使用系统目录。默认返回TrueType字体文件名列表,或者AFM字体fontext =='afm'。“”“

 from six.moves import winreg if directory is None: directory = win32FontDirectory() fontext = get_fontext_synonyms(fontext) key, items = None, {} for fontdir in MSFontDirectories: try: local = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, fontdir) except OSError: continue if not local: return list_fonts(directory, fontext) try: for j in range(winreg.QueryInfoKey(local)[1]): try: key, direc, any = winreg.EnumValue(local, j) if not is_string_like(direc): continue if not os.path.dirname(direc): direc = os.path.join(directory, direc) direc = direc.split('\0', 1)[0] if os.path.splitext(direc)[1][1:] in fontext: items[direc] = 1 except EnvironmentError: continue except WindowsError: continue except MemoryError: continue return list(six.iterkeys(items)) finally: winreg.CloseKey(local) return None 

这对我工作:

 sudo apt-get install libfreetype6-dev libxft-dev