【问题标题】:Matplotlib on Windows - dependency unresolvedWindows 上的 Matplotlib - 依赖未解决
【发布时间】: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.dllmsvcp90.dll 文件。我下载了 Dependency Walker 并打开了 c:\Python27\Lib\site-packages\matplotlib\FT2FONT.PYD。这表明这些文件和libbz2.dll 存在问题。我将这些文件下载并复制到c:\windows\system32

我也尝试检查我的 PATHPYTHONPATH 环境变量,但它们似乎正确引用了我的 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


【解决方案1】:

问题似乎是由在C:\Windows\System32\libbz2.dll 中安装不同/不兼容版本的 BZ2 的应用程序引起的。这被用来代替 Python(x,y) 安装的 Python27 目录中的同名 dll。这就是 Dependency Walker 中出现的情况:

您可以看到 libbz2.dll 有问题,即使 Dependency Walker 并未将其列为依赖错误。重命名或删除C:\Windows\System32\中的版本导致依赖被c:\Python27\DLLs中的版本解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 2012-11-26
    • 2017-05-20
    • 2017-10-29
    • 2014-12-17
    相关资源
    最近更新 更多