Matplotlib无法在Windows 10上加载ft2font。

6
我是一名有用的助手,以下是您需要翻译的内容:

我正在使用带有Python 2.7.14的Anaconda 5.0.1。当我打开jupyter笔记本并尝试运行以下命令时:

%matplotlib inline

I get the following error:

ImportError                               Traceback (most recent call last)
C:\toolkits.win\anaconda2\envs\dlc\lib\site-packages\matplotlib\font_manager.py in <module>()
     56 
     57 import matplotlib
---> 58 from matplotlib import afm, cbook, ft2font, rcParams, get_cachedir
     59 from matplotlib.compat import subprocess
     60 from matplotlib.fontconfig_pattern import (

ImportError: DLL load failed: The specified procedure could not be found.

当我尝试深入了解错误时,问题出在ft2font上:
In [1]: from matplotlib import ft2font
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-a32e7826851f> in <module>()
----> 1 from matplotlib import ft2font

ImportError: DLL load failed: The specified procedure could not be found.

我已经仔细检查过了,确保freetype已经安装好:

(dlc) C:\Users\Larry>conda install freetype
Fetching package metadata .............
Solving package specifications: .

# All requested packages already installed.
# packages in environment at C:\toolkits.win\anaconda2\envs\dlc:
#
freetype                  2.8               vc9hf582001_0  [vc9]

有什么想法吗?


2
那个问题已经过时三年以上了,而且并没有提供解决方案。我已经尝试卸载matplotlib和freetype,但都没有解决问题。 - french bread
8个回答

6

对上面的建议稍加改进:

pip install matplotlib --force-reinstall

这对我起作用了,而上面的解决方案却没有起作用。 - tfv

6
conda install freetype --force-reinstall

2
你可能需要解释你的解决方案。 - Badro Niaimi
不知道为什么,但这解决了我的问题。谢谢。 - Khris

2
我发现如果conda没有在终端正确启动时激活,你就会得到这个错误。
我发现通过打开终端,输入一堆东西并按回车键多次以防止conda激活,然后当我试图运行一个包含matplotlib的脚本时,它会给我这个错误,但当我让它不受干扰地启动时,它不会给我这个错误(至少会通过这个错误)。
考虑到这点,如果可能的话,最好保持文件顶部的import matplotlib,这样你就不用等很久,然后发现matplotlib无法加载。

这个问题发生在我身上,是因为我没有以管理员权限启动Miniconda提示符。我需要重新安装Miniconda,然后再次下载库文件(使用管理员权限),一切都运行得很好。 - bardulia

2

def _check_versions():

# Quickfix to ensure Microsoft Visual C++ redistributable
# DLLs are loaded before importing kiwisolver
from . import ft2font

尝试安装Microsoft Visual C++可再发行组件。

1
我的解决方案:卸载matplotlib,然后使用pip重新安装它。

我还需要包括“-upgrade”选项。 - tfv

1

我遇到了同样的问题,我的电脑上问题是Java(openJDK)在PATH变量中先于Python(在我的情况下是Anaconda)。

如果您打开一个cmd并输入:

echo %PATH%

你可以在你的机器上检查是否也是这种情况。如果它声明...\Java\openJDK<version>\bin在Anaconda目录之前,那么错误的freetype.dll库将被找到并出现错误。
你需要做的就是更改PATH,使Anaconda目录在Java目录之前。不过这可能会引发另一组与Java相关的问题...

1

我通过安装最新的 Microsoft Visual C++ 2019 可再发行包解决了这个问题。 在我的情况下: python 版本为 3.8.7 matplotlib 版本为 20.3.3 test.py result in IDLE


安装 MS Visual C++ 可再发行组件 2019 也解决了我的问题。我需要这个组件来创建使用 Python 的 PowerBI 可视化效果。 - ccasimiro9444

1

调试时遇到了同样的问题。看起来是另一个访问拒绝的问题。

解决方案:以提升的模式重新安装matplotlib。

  1. 以管理员身份启动Anaconda提示符
  2. 运行conda install matplotlib
  3. 完成安装所需的任何包。

没错!这个问题发生在我导入一些库到Miniconda时,但是我之前忘记以管理员权限打开Miniconda提示符,这导致写入一些matplotlib文件时出现了一些问题。重新安装Miniconda并使用管理员权限后,一切都正常了。 - bardulia

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