OSError: 找不到名为 "cairo-2" 的库 (来自 Custom_Widgets 的 import ProjectMaker)

6
怎样解决这个错误?
C:\Users\vanvl\OneDrive\Bureaublad\Progammeren\Project 1.02.2>python
Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from Custom_Widgets import ProjectMaker
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\vanvl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\Custom_Widgets\ProjectMaker.py", line 14, in <module>
    import cairosvg
  File "C:\Users\vanvl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\cairosvg\__init__.py", line 26, in <module>
    from . import surface  # noqa isort:skip
  File "C:\Users\vanvl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\cairosvg\surface.py", line 9, in <module>
    import cairocffi as cairo
  File "C:\Users\vanvl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\cairocffi\__init__.py", line 48, in <module>
    cairo = dlopen(
  File "C:\Users\vanvl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\cairocffi\__init__.py", line 45, in dlopen
    raise OSError(error_message)  # pragma: no cover
OSError: no library called "cairo-2" was found
no library called "cairo" was found
no library called "libcairo-2" was found
cannot load library 'libcairo.so.2': error 0x7e
cannot load library 'libcairo.2.dylib': error 0x7e
cannot load library 'libcairo-2.dll': error 0x7e
2个回答

17
这是一个非常烦人的依赖问题,因为cairocffi没有为Windows构建,你需要根据这里的说明安装额外的依赖:https://doc.courtbouillon.org/cairocffi/stable/overview.html#installing-cairo-on-windows 一个更快的解决方案是按照以下步骤操作: 我使用了pipwin,它从一个非官方的仓库安装https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycairo
pip install pipwin

pipwin install cairocffi

此外,还请参考以下相关问题:在Windows上使cairosvg工作

我开始使用其他东西,但我会检查在我的Pyqt5上使用它。谢谢。 - Ic3Fox
还是有点困惑,我开始使用WPF来设计C#。但是感谢您的回答。 - Ic3Fox
4
有没有办法在 macOS 上解决相同的问题? - Gustav Rasmussen
在我的 M1 Mac 上运行 Ventura 时的问题是 brew 安装了一些库,而我的 $HOME 中的 cairo 无法看到。解决方法是设置 DYLD_FALLBACK_LIBRARY_PATH 作为环境变量。我在这里找到了解释 https://github.com/squidfunk/mkdocs-material/issues/5121 - snow6oy

3
在Ubuntu上:
sudo apt install libcairo2

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