Python matplotlib在导入时花费的时间

Python matplotlib在导入时花费的时间,python,matplotlib,Python,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

我刚刚升级到最新的稳定版本
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.')
。。。它总是会停几秒钟


这是预期的行为吗?以前也一样,只是没有打印出来的信息?

正如tom在上面的评论中所建议的,删除文件:

fontList.cache
fontList.py3k.cache 
tex.cache 
解决问题。 在我的情况下,文件位于:

`~/.matplotlib`
编辑

几天前,消息再次出现,我删除了上述位置的文件,但没有成功。我发现,正如所建议的,在OSX Yosemite(10.10.15版)上有一个包含文本缓存文件的额外位置是:
~/.cache/fontconfig
,以下内容对我很有用:

sudo apt-get install libfreetype6-dev libxft-dev
  • 同时从该目录中删除缓存文件:~/.cache/fontconfig(根据tom的建议)
    rm-rvf~/.cache/fontconfig/*
  • 还删除了~/.matplotlib中的.cache文件(根据Hugo的建议)
    rm-rvf~/.matplotlib/*

我运行了python代码w。sudo和它治好了…我猜是没有权限写那张表。。。祝你好运

我只使用sudo运行了一次python代码,它为我解决了警告问题。 现在它跑得更快了。在没有sudo的情况下运行不会发出任何警告

干杯

这对我很有用:

sudo apt-get install libfreetype6-dev libxft-dev

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

  • 已删除~/.cache/matplotlib/fontList.cache
  • 运行代码时,再次发出警告(假设:正在正确重建缓存)
  • 再次运行代码,没有更多警告(最后)

您好,您必须找到以下文件:font\u manager.py在我的示例中:C:\Users\gustavo\Anaconda3\Lib\site packages\matplotlib\font\u manager.py

并找到def win32InstalledFonts(directory=None,fontext='ttf'),替换为:

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


这对我在Ubuntu16.04lstPython3.5.2 | Anaconda4.2.0(64位)上很有效。我删除了
~/.cache/matplotlib/
中的所有文件

sudo rm -r fontList.py3k.cache tex.cache 

一开始我以为这不管用,因为后来我收到了警告。但在重建缓存文件后,警告消失了。因此,请关闭您的文件,然后重新打开(再次打开),它没有任何警告。

相关:。建议删除
~/.cache/matplotlib
的内容,然后重试。这可能是一个权限问题——它不应该每次我没有读到最新的评论时都构建缓存。谢谢这对我有用。在使用python 2.7的Ubuntu 14.04.2上,我删除了~/.cache/matplotlib/中的所有文件。起初我认为它不起作用,因为后来我收到了警告。但在重建缓存文件后,警告消失了。:)在mod_wsgi+apache httpd+centos组合中-当从浏览器发送请求时,httpd只是等待,说正在构建字体缓存…它等待了6分钟以上,然后继续…并且永远不会完成字体更新。你能建议如何解决这个问题吗?感谢我在OSX El Capitan上的发言,但这并不能解决问题。有什么想法吗?关于El Capitan,我还必须删除~/.cache/fontList或类似内容。
mpl.get_cachedir()
将显示我在OS X El Capitan上的缓存位置,这就解决了问题。请注意,删除这些文件后,下次导入matplotlib时,仍然会再次收到警告。之后就可以开始了。欢迎来到堆栈溢出!虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。我正在Mac OSX El Capitan上运行Jupyter笔记本电脑。我运行了
sudo jupyter笔记本
,然后在笔记本中导入matplotlib.pyplot,它解决了我的问题。我已经为此奋斗了几个月,这解决了它!我使用的是OS 10.9.5。好吧,如果你看一下已接受的答案,你会发现你所做的只是通过更改用户解决了问题,并且由于根主目录中没有~/.matplotlib,所以问题消失了。@Rsh否,关于使用root权限的回答说,以root身份运行一次会使它在以后以普通用户身份运行时不会再次构建缓存。不管怎么说,这对我不起作用。在macOS X El Captain上对我起作用。我的印象是,它也加快了加载其他库的速度。在第二次加载时,不再收到消息。