【发布时间】:2014-10-15 13:21:08
【问题描述】:
我在 Windows 更新后使用 matplotlib 时遇到了问题。我正在运行 Windows 7 Service Pack 1 32 位,并且我安装了 Python 和 matplotlib 作为 Python(x,y)-2.7.6.1 的一部分。该问题似乎与 FreeType 有关,因为 ft2font 上的导入失败,如下面的堆栈跟踪所示:
In [1]: import matplotlib
In [2]: matplotlib.use('agg')
In [3]: import matplotlib.pyplot as plt
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-3-eff513f636fd> in <module>()
----> 1 import matplotlib.pyplot as plt
C:\Python27\lib\site-packages\matplotlib\pyplot.py in <module>()
22
23 import matplotlib
---> 24 import matplotlib.colorbar
25 from matplotlib import _pylab_helpers, interactive
26 from matplotlib.cbook import dedent, silent_list, is_string_like, is_numlike
C:\Python27\lib\site-packages\matplotlib\colorbar.py in <module>()
27 import matplotlib.artist as martist
28 import matplotlib.cbook as cbook
---> 29 import matplotlib.collections as collections
30 import matplotlib.colors as colors
31 import matplotlib.contour as contour
C:\Python27\lib\site-packages\matplotlib\collections.py in <module>()
21 import matplotlib.artist as artist
22 from matplotlib.artist import allow_rasterization
---> 23 import matplotlib.backend_bases as backend_bases
24 import matplotlib.path as mpath
25 from matplotlib import _path
C:\Python27\lib\site-packages\matplotlib\backend_bases.py in <module>()
48
49 import matplotlib.tight_bbox as tight_bbox
---> 50 import matplotlib.textpath as textpath
51 from matplotlib.path import Path
52 from matplotlib.cbook import mplDeprecation
C:\Python27\lib\site-packages\matplotlib\textpath.py in <module>()
9 from matplotlib.path import Path
10 from matplotlib import rcParams
---> 11 import matplotlib.font_manager as font_manager
12 from matplotlib.ft2font import FT2Font, KERNING_DEFAULT, LOAD_NO_HINTING
13 from matplotlib.ft2font import LOAD_TARGET_LIGHT
C:\Python27\lib\site-packages\matplotlib\font_manager.py in <module>()
51 import matplotlib
52 from matplotlib import afm
---> 53 from matplotlib import ft2font
54 from matplotlib import rcParams, get_cachedir
55 from matplotlib.cbook import is_string_like
ImportError: DLL load failed: The specified procedure could not be found.
我尝试重新安装 Python(x,y),但这并没有解决问题。
从 Stackoverflow 上的其他答案中,我了解到这里的常见故障包括缺少 msvcr90.dll 和 msvcp90.dll 文件。我下载了 Dependency Walker 并打开了 c:\Python27\Lib\site-packages\matplotlib\FT2FONT.PYD。这表明这些文件和libbz2.dll 存在问题。我将这些文件下载并复制到c:\windows\system32。
我也尝试检查我的 PATH 和 PYTHONPATH 环境变量,但它们似乎正确引用了我的 Python 安装:
PATH: C:\Python27\Lib\site-packages\PyQt4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Novell\GroupWise;C:\Program Files\MiKTeX 2.9\miktex\bin\;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Common Files\AspenTech Shared\;C:\Python27;C:\Python27\DLLs;C:\Python27\Scripts;C:\Python27\gnuplot\binary;C:\Program Files\pythonxy\SciTE-3.3.2-3;C:\Program Files\pythonxy\console;C:\MinGW32-xy\bin;C:\Python27\Lib\site-packages\vtk
PYTHONPATH: c:\Python27\DLLs
即使只使用上面会话中所示的 Agg 后端也会出现问题,所以我认为它与 Qt 或 tk 没有任何关系。
【问题讨论】:
-
+1 因为这似乎是一个经过充分研究的主题问题。我希望你能得到答案。
-
你是否尝试从它自己的download page 安装 Matplotlib?有一个 Windows 二进制分发版here。
-
@eryksun 如何找到我拥有的 bz2 版本以及需要什么?
-
啊 - 我安装的软件 (Aspen fwiw) 似乎安装了不兼容的 libbz2.dll 版本。当我删除此文件时,一切正常。很好的收获@erykshun。
-
我已经为我所做的解决问题写了一个答案,但如果你想要赏金,eryksun,你可以写一个参考一般问题解决策略的答案,我会接受如果可以看出它会导致解决方案。毕竟,您的 cmets 帮助我发现了问题。
标签: python matplotlib freetype