pyecharts在CentOS下生成图片遇到的问题

最近在做一份数据报表,想把统计图渲染成图片,然后插入到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



此时,脚本已经能正常运行了,但是生成图片后发现中文乱码了


解决办法:

  1. 安装fontconofig
    yum -y install fontconfig

  2. 在/usr/share/fonts下新建文件夹chinese,从windows的C:\windows\fonts下把需要的字体拷贝出来,上传到刚新建的文件夹下

  3. 修改chinese目录权限:
    chmod -R 755 /usr/share/fonts/chinese

  4. 安装ttmkfdir,并生成fonts.scale文件

yum -y install ttmkfdir 
ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir 
  1. 修改字体配置文件
    vi /etc/fonts/fonts.conf
    找到“”,增加一行:
    /usr/share/fonts/chinese
  2. 清除缓存
    fc-cache

后记:
在第一个问题上磕了很久,有尝试过非root权限用户使用chromium,看到 “--no-sandbox”时不知道怎么添加。。。如果是先接触过pyppeteer,可能这个问题就变得简单了——“关闭沙盒模式”。

你可能感兴趣的:(pyecharts在CentOS下生成图片遇到的问题)