gpt4 book ai didi

python - 在 Ubuntu 上使用 Python 3.2 的 rsvg

转载 作者:太空狗 更新时间:2023-10-29 22:16:38 26 4
gpt4 key购买 nike

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

编辑:我得到的错误是:'ImportError: No module named rsvg'

这个错误在python2中没有显示

提前致谢

最佳答案

我在尝试弄清楚如何做到这一点时遇到了很多困难。我希望其他人找到这个答案并为自己节省很多时间!

对于 Python 3,几个最初用 C 编写的库(包括 GTKClutterlibrsvg)的 Python 语言绑定(bind)已被 GObject introspection 取代。库,从 C“对象”动态生成 Python 对象的 Python 代码。

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

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

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

#!/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 文件的名称。

关于python - 在 Ubuntu 上使用 Python 3.2 的 rsvg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com