-->

与Python 3.2在Ubuntu RSVG(rsvg with Python 3.2 on Ub

2019-06-24 01:51发布

我想在Python 3.2使用RSVG但我不断收到导入错误。 我已经安装了所有的librsvg软件包与开罗一起。 我找不到任何关于网上还有什么要安装才能正常工作。 我确实听到了RSVG模块尚未从2005年开始更新,因此它只是不与Python 3.2兼容,还是有别的东西,我可以尝试安装呢? 另外,如果RSVG不工作,没有任何人有一个简单的方法,通过Python来显示SVG文件(基本上只显示图像)有什么建议?

编辑:我得到的错误是:“导入错误:没有模块名为RSVG”

此错误不会在python2显示

提前致谢

Answer 1:

我经历了很多困难,试图找出如何做到这一点。 我希望其他人找到这个答案,并保存自己大量的时间!

对于Python 3,对于原来写在C几个库(包括Python语言绑定GTK , 杂波和的librsvg )已被替换的GObject内省程序库,动态地从C“对象”生成Python对象Python代码。

为了使用librsvg在Python 3中,首先安装必要的GObject内省库(除了Python 3的开罗库)。 例如,在Ubuntu 13.10:

sudo apt-get install gir1.2-rsvg-2.0 python3-cairo

然后用下面的代码测试一下。

#!/usr/bin/env python3                                                          

# `gi.repository` is a special Python package that dynamically generates objects 
from gi.repository import Rsvg
import cairo

INPUTFILE = 'tiger.svg'

if __name__ == '__main__':
    # create the cairo context                                                  
    surface = cairo.SVGSurface('myoutput.svg', 580, 530)
    context = cairo.Context(surface)

    # use rsvg to render the cairo context                                      
    handle = Rsvg.Handle()
    svg = handle.new_from_file(INPUTFILE)
    svg.render_cairo(context)

为了实现这为您的项目,

  1. 改变cairo.SVGSurface是任何表面你要借鉴和
  2. 修改的值INPUTFILE是你希望呈现的SVG文件的名称。


文章来源: rsvg with Python 3.2 on Ubuntu