python pdfkit 使用 linux上的问题
作者:互联网
在windows上问题不大,根据相关教程一切ok。
这里主要整理debian上的坑
IOError: wkhtmltopdf exited with non-zero code -6. error: QXcbConnection: Could not connect to display
系统上主要装三个东西 如下
apt-get install wkhtmltopdf (pdfkit依赖这个)
apt-get install xvfb (wkhtmltopdf依赖这个,无界面运行,模拟显示设备的库,如果不装会报错python wkhtmltopdf QXcbConnection:Could not connect to display。 wkhtmltopdf exited with non-zero code -6. error)
apt-get install fonts-noto (在linux上很多系统初始是不支持中文的,这个都懂,下载安装所需依赖,如果不装中文字体不会显示或是麻花)
装了上面三个东西还用不了,xvfb这个需要启动
解决一:
运行xvfb服务, 为了避免显示设备冲突,指定一个编号,这里是 10
sudo Xvfb :10 -ac (不是后台启动,一直挂起,如果需要自己搜索)
指定显示设备,和上面的编号一致
export DISPLAY=:10 (环境变量)
执行 pdfkit 代码
解决二:
因为我们用的Python,一般不会在系统上自己启动xvfb,Python中 pyvirtualdisplay 这个库就是xvfb的封装,安装pip install pyvirtualdisplay,
from pyvirtualdisplay import Display
display = Display()
display.start() 启动
执行pdfkit代码
display.stop() 停止
display.is_alive() 判断是否存活
当然需要也可以这样
with Display() as display:
pdfkit 代码
标签:pdfkit,get,python,wkhtmltopdf,xvfb,install,linux,display 来源: https://www.cnblogs.com/zhujincheng/p/14744310.html