导入matplotlib.pyplot时,fc-list挂起了。

3

我遇到了与网站import matplotlib.pyplot hangs描述的问题一样,即在更新matplotlib版本后执行import matplotlib.pyplot as plt时会挂起,同时执行fc-list

然而,所提出的解决方法对我无效;在~/.matplotlib中运行fc-list占用了100%的CPU,15分钟后仍未完成。

我的配置如下:

  • Mac,运行OS 10.10.5(OS X Yosemite)
  • Python 2.7.5
  • matplotlib 1.4.3(之前版本为1.3.1,在那个版本中没有问题)

要更新matplotlib版本,我使用了以下命令:

sudo pip install matplotlib

如果我现在重新运行这个命令,我会得到什么结果?
Requirement already satisfied (use --upgrade to upgrade): matplotlib in /Library/Python/2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.6 in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): pytz in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): pyparsing!=2.0.0,>=1.5.6 in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): nose>=0.11.1 in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): six>=1.4 in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): mock in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): funcsigs in /Library/Python/2.7/site-packages (from mock->matplotlib)
Requirement already satisfied (use --upgrade to upgrade): pbr>=0.11 in /Library/Python/2.7/site-packages (from mock->matplotlib)

并执行 sudo pip install --upgrade matplotlib 命令:

Requirement already up-to-date: matplotlib in /Library/Python/2.7/site-packages
Requirement already up-to-date: numpy>=1.6 in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already up-to-date: pytz in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already up-to-date: pyparsing!=2.0.0,>=1.5.6 in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already up-to-date: python-dateutil in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already up-to-date: nose>=0.11.1 in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already up-to-date: six>=1.4 in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already up-to-date: mock in /Library/Python/2.7/site-packages (from matplotlib)
Requirement already up-to-date: funcsigs in /Library/Python/2.7/site-packages (from mock->matplotlib)
Requirement already up-to-date: pbr>=0.11 in /Library/Python/2.7/site-packages (from mock->matplotlib)

我在~/.matplotlib目录下有一个fontList.cache文件。该文件很旧(追溯到2013年,比本次更新尝试更早)。

问题:

  1. 尽管有fontList.cache文件,我是否需要运行fc-list命令,并期望它最终完成?
  2. matplotlib是否期望在其他位置找到fontList.cache文件?也许我的matplotlib安装/更新搞乱了某些路径 - 但:matplotlib.get_cachedir()返回/Users/MyName/.matplotlib
  3. 文件名是否已更改?我应该重命名fontList.cache吗?
  4. 我不再拥有/usr/X11/lin目录。然而,fc-list是否仍可能进入无限循环状态,就像所建议的那样?

鉴于我无法重现自己的问题,我将把决定留给社区,如果我们认为这里的问答对未来的用户没有帮助,就投下 VtC。 - Schorsch
1个回答

2

发布问题后我无法复现该问题。


我怀疑重新运行

sudo pip install matplotlib

并且/或者

sudo pip install --upgrade matplotlib

在编写问题时(为了捕获屏幕输出),解决了先前存在的问题。

fc-list现在在2分钟内完成;尽管它没有创建新的fontList.cache文件。


我现在可以像以前一样调用import matplotlib.pyplot as plt


{btsdaf} - Kevin Bullaughey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接