最近在做一份数据报表,想把统计图渲染成图片,然后插入到word文档中,做简单分析。
pyecharts不用写前台页面,也提供了图片渲染方法,是理想中的那个他~
pyecharts生成图片有3种方法,我选了snapshot-pyppeteer,在windows下开发的,一路下来很顺畅,移到linux(CentOS)上时出现了下面这2个错误:
- raise BadStatusLine(line)
http.client.BadStatusLine: GET /json/version HTTP/1.1 - pyppeteer.errors.BrowserError: Browser closed unexpectedly:
解决办法:
先把依赖包装好,如下
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y
yum install ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y
修改snapshot_pyppeteer下的snapshot,添加 --no-sandbox
此时,脚本已经能正常运行了,但是生成图片后发现中文乱码了
解决办法:
-
安装fontconofig
yum -y install fontconfig
-
在/usr/share/fonts下新建文件夹chinese,从windows的C:\windows\fonts下把需要的字体拷贝出来,上传到刚新建的文件夹下
-
修改chinese目录权限:
chmod -R 755 /usr/share/fonts/chinese
-
安装ttmkfdir,并生成fonts.scale文件
yum -y install ttmkfdir
ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
- 修改字体配置文件
vi /etc/fonts/fonts.conf
找到“”,增加一行:
<dir>/usr/share/fonts/chinese</dir>
- 清除缓存
fc-cache
后记:
在第一个问题上磕了很久,有尝试过非root权限用户使用chromium,看到 “--no-sandbox”时不知道怎么添加。。。如果是先接触过pyppeteer,可能这个问题就变得简单了——“关闭沙盒模式”。
网友评论