Python 导入matplotlib.pyplot挂起

Python 导入matplotlib.pyplot挂起,python,matplotlib,python-import,Python,Matplotlib,Python Import,我正在尝试在OS X 10.8.4上启动并运行matplotlib。我已经安装了matplotlib和依赖项(libping、freetype、numpy、scipy)。我可以很好地导入matplotlib。但是,如果我尝试导入matplotlib.pyplot,它就会挂起。没有错误,只是什么都没发生 >>> import matplotlib.pyplot …我等了大概20分钟,什么也没发生。我使用的是1.2.1版,但我甚至卸载了它,并尝试了1.2.0版,但没有效果。关于m

我正在尝试在OS X 10.8.4上启动并运行matplotlib。我已经安装了matplotlib和依赖项(libping、freetype、numpy、scipy)。我可以很好地导入matplotlib。但是,如果我尝试导入matplotlib.pyplot,它就会挂起。没有错误,只是什么都没发生

>>> import matplotlib.pyplot
…我等了大概20分钟,什么也没发生。我使用的是1.2.1版,但我甚至卸载了它,并尝试了1.2.0版,但没有效果。关于matplotlib.pyplot的导入错误,我已经看到了很多问题,但是在它挂起的地方什么都没有。然后,我尝试使用Enthound/Canopy python发行版使其工作,但同样的问题仍然存在。以下是我在杀死导入时看到的情况:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/pyplot.py", line 26, in <module>
    from matplotlib.figure import Figure, figaspect
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/figure.py", line 34, in <module>
    import matplotlib.colorbar as cbar
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/colorbar.py", line 29, in <module>
    import matplotlib.collections as collections
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/collections.py", line 23, in <module>
    import matplotlib.backend_bases as backend_bases
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 37, in <module>
    import matplotlib.widgets as widgets
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/widgets.py", line 17, in <module>
    from lines import Line2D
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/lines.py", line 25, in <module>
    from matplotlib.font_manager import FontProperties
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/font_manager.py", line 1335, in <module>
    _rebuild()
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/font_manager.py", line 1322, in _rebuild
    fontManager = FontManager()
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/font_manager.py", line 980, in __init__
    self.ttffiles = findSystemFonts(paths) + findSystemFonts()
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/font_manager.py", line 317, in findSystemFonts
    for f in get_fontconfig_fonts(fontext):
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/font_manager.py", line 274, in get_fontconfig_fonts
    output = pipe.communicate()[0]
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/subprocess.py", line 746, in communicate
    stdout = _eintr_retry_call(self.stdout.read)
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/subprocess.py", line 478, in _eintr_retry_call
    return func(*args)
KeyboardInterrupt

有人知道在walk(new_path,top down,onerror,followlinks)中x的递归
可能表示什么吗?

我知道发生了什么。希望这个解决方案对其他人有用。在
/usr/X11/lib
文件夹中,有一个指向目录本身的符号链接。这似乎创建了一个无限循环。当我删除链接时,导入工作正常。

您可以通过执行以下操作修复Mac OS X Mavericks和Yosemite上的问题:

cd ~/.matplotlib/
fc-list  # Should take a couple minutes.

运行
fc list
完成后,您将能够使用
import matplotlib.pyplot as plt
导入包。这是解决方案的关键。这个错误似乎与字体缓存有关。

我在Linux上也遇到了同样的问题

原来matplotlib在确定要使用的GUI后端时遇到了一些问题

明确表示使用Tkinter background(默认情况下使用Tkinter background),使用以下命令解决了问题:

%matplotlib tk
其次是进口

import matplotlib.pyplot as plt

工作正常。

如果您显式地将后端设置为“agg”并重试,会怎么样<代码>导入matplotlib matplotlib。使用('AGG')将matplotlib.pyplot作为plt导入
您将无法使用
显示
,但它可能会诊断这是否是后端问题?@b谢谢。我刚刚试过,但是当我作为plt运行import matplotlib.pyplot时遇到了相同的问题。打开终端并以root用户身份运行
fc list
。这需要很长时间吗?出于兴趣,您是否有大量自定义字体或自定义字体目录@BeRecursive刚刚选中了
fc list
,它就像
import matplotlib.pyplot
一样挂起。我只有OS X附带的默认字体。我有同样的问题,但在/usr/X11/lib中没有看到任何符号链接。你能扩展这个答案吗?我也有同样的问题。你能说得更具体些吗。该目录的名称是什么?也在约塞米蒂工作。也在El Capitan工作(仍然是必需的)。我的
~/.matplotlib/
为空。这是作为matplotlib的pip安装填充的吗?我尝试了这个,导入工作正常,但是
plt.figure()
导致挂起
import matplotlib.pyplot as plt