pygal输出png问题:dlopen() failed to load a library: cairo / cairo-2

背景

最近一个比较棘手的问题,需要python程序可以直接根据数据生成图片。而之前做数据可视化,无论是echart还是其他和js相关的可视化库,都是通过js在浏览器中生成交互图像的。都不能直接生成图片,而py最常用的Matplotlib虽然数据图像准确度够了,但是美化太麻烦……最后找了一圈,发现了pygal这个,能生成本地图片美化程度也不错的库……然后又坑了

pygal的坑

pygal的结果输出默认为svg,想要输出其他格式们还需要其他库的支持。官方建议安装库有: 
1. pip install lxml 
2. pip install cairosvg 
3. pip install tinycss 
4. pip install cssselect

cairo的坑

而至少在windows下,cairosvg又是一个大坑,pip安装没有任何问题,然而试着import ,直接报错 
OS ERROR:dlopen() failed to load a library: cairo / cairo-2

解决方案

搜索N多结果,终于找到解决方案: 
下载GTK+(看清楚电脑x64还是x86,我下的是最新的) 
http://win32builder.gnome.org/ 
然后解压缩在比如c:/gtk文件夹下,官方建议别用winzip,但是我用好压软件解压的没有问题。 
将其中bin文件夹,加入进系统环境变量 
在cmd中运行: pkg-config –cflags gtk+-3.0 
检查这两个是否正确 
c:\gtk\etc\pango\pango.modules 
c:\gtk\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache 
c:\gtk\lib\gtk-3.0\3.0.0\immodules.cache 
再cmd运行:gtk3-demo 
运行成功,说明没问题了。之后重新启动你的python环境,import cairo,不会报错。使用pygal也不会报错了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值