将从 https://github.com/ubawurinna/freetype-windows-binaries 下载下来的dll
放置到c:\windows\system32\ 下之后
import freetype 终于不报
>>> import freetype Traceback (most recent call last): File "D:\venv\jupyter\lib\site-packages\freetype\raw.py", line 34, in <module> _lib = ctypes.CDLL(filename) File "c:\Python35\Lib\ctypes\__init__.py", line 351, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 找不到指定的模块。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\venv\jupyter\lib\site-packages\freetype\__init__.py", line 21, in <module> from freetype.raw import * File "D:\venv\jupyter\lib\site-packages\freetype\raw.py", line 37, in <module> raise RuntimeError('Freetype library not found') RuntimeError: Freetype library not found >>>
但是:却报错:
>>> import freetype Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\venv\jupyter\lib\site-packages\freetype\__init__.py", line 21, in <module> from freetype.raw import * File "D:\venv\jupyter\lib\site-packages\freetype\raw.py", line 190, in <module> FT_Get_BDF_Charset_ID = _lib.FT_Get_BDF_Charset_ID File "c:\Python35\Lib\ctypes\__init__.py", line 364, in __getattr__ func = self.__getitem__(name) File "c:\Python35\Lib\ctypes\__init__.py", line 369, in __getitem__ func = self._FuncPtr((name_or_ordinal, self)) AttributeError: function 'FT_Get_BDF_Charset_ID' not found >>>
解决方案就是把
D:\venv\jupyter\lib\site-packages\freetype\raw.py
相应的行(我这儿出现过两行)屏蔽掉,
#FT_Get_BDF_Charset_ID = _lib.FT_Get_BDF_Charset_ID #FT_Get_BDF_Property = _lib.FT_Get_BDF_Property
原因:怀疑从git上下载的dll较老,用dependence walker查,确实没有 FT_Get_BDF_Charset_ID 和 FT_Get_BDF_Property
如下图示: