在 macOS 12 上使用 Python@3.9 在 reportlab 的平面命名空间“_FT_Done_Face”中找不到符号

Symbol not found in flat namespace '_FT_Done_Face' from reportlab with Python@3.9 on macOS 12

我有一个使用 easy-thumbnail 作为依赖项的 django 项目。

使用 pip 安装所有包都按预期工作,但是当我尝试 运行 我的应用程序时出现此错误:

Invalid template library specified. ImportError raised when trying to load 'backend.templatetags.get_thumbnail': dlopen(/opt/homebrew/lib/python3.9/site-packages/reportlab/graphics/_renderPM.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_FT_Done_Face'

错误是从 reportlab 引发的,它是 easy-thumbnail 的依赖项。据我了解,reportlab 无法找到 freetype。但它安装正确恕我直言。

我使用的是 macOS 12.0.1

我通过 Homebrew 安装了 Python 和 freetype。 pkg-config 表示,freetype2 在预期路径中可用。

我做错了什么?我该如何解决这个问题?


编辑

我在失败的 .so 文件上做了 otool -l,这就是我得到的(这里我在 venv 中再次 运行):

/Users/markusgerards/.pyenv/versions/myapp/lib/python3.9/site-packages/reportlab/graphics/_renderPM.cpython-39-darwin.so:
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.60.1)

我怀疑 freetype 应该列在那里...对吗?

我用这个命令重新安装了 reportlab:

pip install reportlab --force-reinstall --no-cache-dir --global-option=build_ext

这强制 pip 实际构建包,现在一切都按预期工作!

我将 M1 Mac Air 与 Python 3.8 一起使用,出于某种原因,@gerricom 的解决方案对我没有用。但是,简单的 pip uninstall reportlab 然后 pip install reportlab 解决了问题。