python django错误:没有库叫“cairo”是发现在窗口上

vvppvyoh  于 2023-01-04  发布在  Python
关注(0)|答案(9)|浏览(218)

当我运行Django服务器时,我看到了这个问题!!

OSError: no library called "cairo" was found

no library called "libcairo-2" was found

cannot load library 'libcairo.so': error 0x7e

cannot load library 'libcairo.2.dylib': error 0x

cannot load library 'libcairo-2.dll': error 0x7e
zi8p0yeb

zi8p0yeb1#

安装GTK+对我不起作用,我使用UniConverter2.0解决了这个问题。

  • Python 3.7语言
  • windows 10 x64

1.安装uniconvertor-2.0rc4-win64_headless.msi
1.在UniConverter安装路径下找到"dll"子目录(在我的例子中是C:\Program Files\UniConvertor-2.0rc4\dlls)。
1.将此"dll"路径添加到系统路径。
1.关闭VSCode并重新打开该项目。
1.尝试再次运行服务器。请享用!

dbf7pr2w

dbf7pr2w2#

WeasyPrint需要Pango、cairo和GDK-PixBuf库。它们是GTK+(以前称为GIMP工具包)的一部分,必须单独安装。
安装GTK+库后,请执行以下操作:

python -m weasyprint http://weasyprint.org weasyprint.pdf
ldfqzlk8

ldfqzlk83#

从Python 3.8开始,dll需要单独添加。添加了GTK+、MSYS2、Visual Studio C编译器和Uniconverter。但是,似乎什么都不起作用。最后,在放置调用add_dll_directory的脚本后,使其工作。

import os

def set_dll_search_path():
   # Python 3.8 no longer searches for DLLs in PATH, so we have to add
   # everything in PATH manually. Note that unlike PATH add_dll_directory
   # has no defined order, so if there are two cairo DLLs in PATH we
   # might get a random one.
   if os.name != "nt" or not hasattr(os, "add_dll_directory"):
       return
   for p in os.environ.get("PATH", "").split(os.pathsep):
       try:
           os.add_dll_directory(p)
       except OSError:
           pass

set_dll_search_path()

来源:PyCairo Windows Python 3.8导入问题

cgh8pdjw

cgh8pdjw4#

在此查看解决方案:
https://www.programmersought.com/article/47674569357/
如果安装后未添加路径,则需要添加路径:

C:\程序文件\GTK3-运行时Win64\bin

我已经用这种方法解过很多次了。

uttx8gqw

uttx8gqw5#

如果您使用的是轻量级的LinuxDockerImage,它可能不包括上面提到的GTK,那么,您可以通过在Dockerfile中添加GTK来包括它

RUN apt-get update -y
RUN apt-get install python3-cffi python3-brotli libpango-1.0-0 libharfbuzz0b libpangoft2-1.0-0 libgtk-3-dev gcc -y

所有这些软件包都建议由weasyprint安装,GCC有GTK。

ia2d9nvy

ia2d9nvy6#

好吧,我明白了。你可以有一个64位版本的python不工作。我发现工作,这可能会改变是安装64位版本的python从python的网站,而不是从微软商店!
1.删除任何版本的python你已经安装
1.下载https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe
1.安装
1.下载并安装https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases
1.确切链接为https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases/download/2021-04-29/gtk3-runtime-3.24.29-2021-04-29-ts-win64.exe
1.请注意,链接来自https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#windows
1.在您的环境路径中添加bin文件夹(抱歉,这是其他人的计算机,我使用Ubuntu)。
1.在weasyprint上运行第一步,你应该可以开始了!

mo49yndu

mo49yndu7#

可能有点晚了,但我刚刚遇到了同样的问题:从这里开始:https://weasyprint.readthedocs.io/en/stable/install.html#windows。在这里您可以找到包含所需DLL的GTK包的链接。
在我的例子中,我有一个64位Python,所以我使用:"Download and run the latest gtk3-runtime-x.x.x-x-x-x-ts-win64.exe"
我没有更改安装目录
安装完成后,我将路径添加到变量路径中。
我重新启动终端,确保可以使用以下命令定位DLL:WHERE libcairo-2.dll。这将返回C:\Program Files\GTK3-Runtime Win64\bin\libcairo-2.dll
然后我运行python -m weasyprint http://weasyprint.org weasyprint.pdf,得到了一些警告,但它们只是警告:)

cwxwcias

cwxwcias8#

我也犯过同样的错误
我已经安装了gtk,如下所示gtk install in windows
什么都不管用
之后:
python-m pip安装pycairo
我帮我解决了这个问题

uemypmqf

uemypmqf9#

试试这个:https://cairocffi.readthedocs.io/en/stable/overview.html#installing-cairo-on-windows
也许这会起作用:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycairo
最佳选择是安装Cairoffi槽管道

pip install pipwin

pipwin install cairocffi

相关问题