【问题标题】:How to resolve Cairo and Pango version problems following pip WeasyPrint installation?pip WeasyPrint 安装后如何解决 Cairo 和 Pango 版本问题?
【发布时间】:2020-01-24 02:42:45
【问题描述】:

我想在运行 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 website 建议使用sudo apt-get install libcairo2-dev,但提示返回一条消息说“libcairo2-dev 已经是最新版本”。

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

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

如果这里不适合发帖,请引导我到更合适的地方,我会去那里。

【问题讨论】:

  • 尝试安装pycario:pip install pycairo

标签: python cairo pango weasyprint cffi


【解决方案1】:

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

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

pip3 install cairocffi

【讨论】:

    猜你喜欢
    • 2021-03-01
    • 1970-01-01
    • 2019-03-28
    • 2021-04-28
    • 1970-01-01
    • 2019-12-20
    • 2021-01-29
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多