有一个 python2 项目在 Ubuntu 16.04 上运行良好,但是当我创建 virtualenv 来为 python2 设置项目时,除了使用 python pdfkit 模块生成 PDF 时出现错误外,其他一切都运行正常
/usr/bin/wkhtmltopdf:符号查找错误:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ls -ld:未定义符号:FT_Property_Set
$ wkhtmltopdf --version
wkhtmltopdf 0.12.5
$ dpkg -S /usr/bin/wkhtmltopdf
wkhtmltopdf: /usr/bin/wkhtmltopdf
$ ldd /usr/bin/wkhtmltopdf | grep local
libfreetype.so.6 => /usr/local/freetype/2_10_1/lib/libfreetype.so.6 (0x00007faf8693a000)
$ sudo find / -type f -name *freetype*.so* 2> /dev/null
/snap/gnome-3-28-1804/128/usr/lib/x86_64-linux-gnu/libfreetype.so.6.15.0
/snap/gnome-3-28-1804/145/usr/lib/x86_64-linux-gnu/libfreetype.so.6.15.0
/home/me/.local/lib/python3.8/site-packages/opencv_python.libs/libfreetype-8d3bcff4.so.6.14.0
/home/me/Downloads/freetype/freetype-2.10.1/objs/.libs/libfreetype.so.6.17.1
/home/me/.nvm/versions/node/v14.15.0/lib/node_modules/framework7-cli/node_modules/sharp/vendor/lib/libfreetype.so.6.17.1
/home/me/Android/Sdk/emulator/lib64/qt/lib/libfreetype.so.6
/usr/local/freetype/2_10_1/lib/libfreetype.so.6.17.1
/usr/lib/x86_64-linux-gnu/libfreetype.so.6.17.1
/usr/lib/x86_64-linux-gnu/vlc/plugins/text_renderer/libfreetype_plugin.so
/work/mine/lamp74/common/lib/libfreetype.so.6.8.0
答案1
您有本地编译的 LibFreetype 版本。为了使一切顺利运行,您必须删除此类库并使用官方打包版本。
打开终端并输入:
sudo rm -rf /usr/local/freetype
sudo apt-get install --reinstall libfreetype6 libfreetype-dev
然后重试运行wkhtmltopdf
或使用它的 Python 脚本。
答案2
最终经过几天的时间才得到解决。
没有发现任何与 home 文件夹相关的问题。这实际上是 QT lib 动态加载问题导致的。在系统端和环境变量设置中做了几次设置后,没有任何效果。
最后我必须从下载一个预编译的二进制文件(QT 修补)https://wkhtmltopdf.org/根据您的操作系统版本。
安装位置为:/usr/local/bin/wkhtmltopdf
然后它就像魔法一样发挥作用。
谢谢@N0rbert 的帮助。
-:)