如果安装似乎正确,为什么在导入 cairo 时会出现 ImportError?

问题描述

问题很简单。自从我使用 M1 MacBook 以来,我已经使用 Homebrew 安装了 Python 和 Cairo。尝试导入包时,出现此错误

>>> import cairo
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cairo/__init__.py",in <module>
    from ._cairo import *  # noqa: F401,F403
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cairo/_cairo.cpython-39-darwin.so,2): Symbol not found: _cairo_append_path
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cairo/_cairo.cpython-39-darwin.so
  Expected in: flat namespace
 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cairo/_cairo.cpython-39-darwin.so

提前致谢。

解决方法

在他们的 GitHub 上查看 this issue,特别是 this comment,您可以尝试一些事情:

  • 如果您还没有使用 Python 3.9(并在终端中使用 python3
  • 卸载您现在拥有的 pycairo 并使用 Homebrew 安装 py3cairo
  • 使用 python3--system-site-package 选项创建一个新的 venv,即 python3 -m venv --system-site-package path/to/env

查看评论本身,如果其中任何一条有效,请告诉我。这个问题似乎没有一个明确的解决方案。