首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu上使用Python3.2的rsvg

在Ubuntu上使用Python3.2的rsvg
EN

Stack Overflow用户
提问于 2012-05-01 04:50:07
回答 1查看 9.3K关注 0票数 7

我试图在Python3.2中使用rsvg,但是我一直收到一个导入错误。我已经安装了与cairo一起的所有librsvg包。我在网上找不到任何关于要安装什么来让它工作的东西。我确实听说rsvg模块自2005年以来就没有更新过,所以它只是与Python3.2不兼容,还是我可以尝试安装它?或者,如果rsvg不起作用,是否有人对通过Python显示SVG文件的简单方法有任何建议(基本上只是显示图像)?

编辑:我得到的错误是:'ImportError:没有名为rsvg的模块‘

此错误不显示在python2中。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2013-11-02 16:27:44

我遇到了很多困难,试图找出如何做到这一点。我希望其他人能找到这个答案,并为自己节省很多时间!

对于Python3,最初用C编写的几个库(包括GTK杂波图书馆员)的Python语言绑定已经被GObject内省库所取代,后者是从C“对象”动态生成Python对象的Python代码。

为了在Python3上使用librsvg,首先安装必要的GObject内省库(除了Python3cair库)。例如,在Ubuntu 13.10上:

代码语言:javascript
复制
sudo apt-get install gir1.2-rsvg-2.0 python3-cairo python-gi-cairo python3-gi

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

代码语言:javascript
复制
#!/usr/bin/env python3                                                          

# `gi.repository` is a special Python package that dynamically generates objects
import gi
gi.require_version('Rsvg', '2.0')
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文件的名称。
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10393675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档