我刚安装了一个Ubuntu bionic实例。它预装了cairo1.14.6。我至少需要cairo1.15.4才能让weasyprint正常工作。不幸的是,即使在安装了最新的cairo之后,python仍然继续使用旧库。如果有线索我会很感激的。在
# Install weasyprint dependencies
sudo apt-get install build-essential python3-dev python3-pip python3-setuptools python3-wheel python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info
# Check cairo lib version, prints "1.15.10-2ubuntu0.1"
dpkg -l '*cairo*'
# Install weasyprint
pip3 install weasyprint
# Test cairo version catch by python, still prints "1.14.6"
python3 -c "import cairocffi; print(cairocffi.cairo_version_string())"
开罗1.15的仿生飞船,所以我不知道你是怎么得到开罗1.14的。在
Python有时会保留库的内部副本。最简单的第一次检查是
我希望您会在那里找到另一个
libcairo
,但如果没有,下面是如何跟踪cairocffi
正在查找的库。在步骤1:找到
cairocffi
正在使用的库1.0(背景)
cairocffi
usesctypes.util.find_library
尝试定位{ctypes.util.find_library
searches using these commands,依次尝试查找库。我已经将python代码转换成了shell脚本,并列出了每个脚本的原始源代码链接。在1.1-找到备用库
运行这些命令直到找到库。这将模拟
find_library
搜索。在1)
^{pr2}$find_library
method 12)
find_library
method 23)
find_library
method 31.2验证库版本
找到库后,请检查其版本。在
如果与坏版本匹配,请继续。如果没有,请使用1.1继续搜索。或者,您也可以尝试对所有Cairo lib进行通用搜索:
步骤2:更新库
2.1确定谁拥有库
备用库可能已使用
apt
或pip
安装。我们都检查一下。 1) 检查apt
2)检查
pip
:2.2更新库
如果可以确定哪个包拥有旧版本,请升级该包。如果没有,请将其删除或手动升级(复制较新的
libcairo.so
)。这应该能解决你的问题。在相关问题 更多 >
编程相关推荐