4

我想在运行 Debian GNU/Linux 8 的服务器上运行 WeasyPrint 库中的一些 Python 代码。代码实际上似乎在工作,除了 WeasyPrint 每次运行代码时都会发出警告:

/home/username/venv/lib/python3.7/site-packages/weasyprint/document.py:36: UserWarning: There are known rendering problems and missing features with cairo < 1.15.4.
/home/username/venv/lib/python3.7/site-packages/weasyprint/fonts.py:44: UserWarning: @font-face support needs Pango >= 1.38

为了调查这一点,我首先查看了我的pip list. 在安装 WeasyPrint 时,我使用python -m pip install weasyprint了 ,它可能安装了 10 个依赖项。但是,与开罗有关的唯一内容似乎是CairoSVG v2.4.2cairocffi v1.1.0cffi 1.12.3。我的任何东西pip list都只有“开罗”这个名字。我认为这可能cairocffi是我需要查看的内容,但使用python -m pip install cairocffi -U没有找到更新。此外,Cairo 网站建议使用sudo apt-get install libcairo2-dev,但提示返回一条消息说“libcairo2-dev 已经是最新版本”。

在我曲折的搜索中利用这个机会来调查 Pango 的问题时,我变得特别困惑。我find -type d -name "*pango*"在我正在使用的Python虚拟环境目录中使用,发现即使名称为pango的目录也没有。根据该网站,Pango 与 Cairo 集成,但由于python -m pip install weasyprint安装了 cairocffi,但我find没有返回任何结果,我对 Pango 功能目前的位置感到困惑。我找到了Pango 的源代码包,但我什至不知道将这些文件放在哪里来替换现有代码。我也没有从源代码下载/安装 Python 包的经验,更不用说我什至无法弄清楚我当前的设置是如何工作的。

cairocffi 和 cairo 是什么关系?同样,Pango 与 cairocffi 与 cairo 的关系是什么?我应该如何继续解决我遇到的版本警告?

如果这不是发布此内容的正确位置,请引导我到更合适的区域,我会将其带到那里。

4

1 回答 1

0

CairoGraphics 是 Pango 与 Cairo ( http://cairographics.org/ ) 的集成,用于文本处理和图形渲染。cairocffi 是 CairoGraphics 的 python 版本。因此,这似乎是错误所在。

具体到您的问题,cairocffi 在 weasyprint 的 text.py 中被导入为“cairo”,而 Pango 可能是 cairo 的依赖项之一。因此,您的 cairocffi 安装似乎有问题。您可以尝试使用 pip3 看看是否有什么不同:

pip3 install cairocffi
于 2020-06-27T09:10:54.620 回答