Ubuntu上带Python3.2的rsvg
我试图在Python3.2中使用rsvg,但我一直收到一个导入错误。我已经安装了所有librsvg包以及cairo。我在网上找不到任何关于如何安装以使其工作的信息。我听说rsvg模块自2005年以来就没有更新过,所以它是不是与Python3.2不兼容,或者我可以尝试安装它?或者,如果rsvg不起作用,是否有人对通过Python显示SVG文件的简单方法有任何建议(基本上只是显示图像) 编辑:我得到的错误是:“ImportError:没有名为rsvg的模块” python2中不显示此错误Ubuntu上带Python3.2的rsvg,python,svg,python-3.x,cairo,rsvg,Python,Svg,Python 3.x,Cairo,Rsvg,我试图在Python3.2中使用rsvg,但我一直收到一个导入错误。我已经安装了所有librsvg包以及cairo。我在网上找不到任何关于如何安装以使其工作的信息。我听说rsvg模块自2005年以来就没有更新过,所以它是不是与Python3.2不兼容,或者我可以尝试安装它?或者,如果rsvg不起作用,是否有人对通过Python显示SVG文件的简单方法有任何建议(基本上只是显示图像) 编辑:我得到的错误是:“ImportError:没有名为rsvg的模块” python2中不显示此错误 提前感谢我
提前感谢我在想办法做这件事时遇到了很多困难。我希望其他人能找到这个答案,为自己节省很多时间 对于Python3,最初用C编写的几个库(包括和)的Python语言绑定已被库所取代,这些库是从C“对象”动态生成Python对象的Python代码 为了在Python3上使用
librsvg
,首先安装必要的GObject内省库(除了Python3 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)
为了在您的项目中实现这一点
INPUTFILE
的值修改为要呈现的SVG文件的名称你犯了什么错误?你能把它添加到你的问题中吗?我认为PyQt应该能够显示SVG图像。它与python3一起工作-查找包
python3-pyqt4
。您可以通过ctypes
来包装它,请参阅。为了获得python绑定,我必须安装大量的软件包,所以在我很少需要的时候我只使用ctypes
。另外sudo apt get install python3 gi
,在python中:来自gi import require\u version
和require\u version('Rsvg',2.0'))
在从gi.repository导入Rsvg之前。在Ubuntu18上,即使安装了所有这些软件包,我也会收到错误,ModuleNotFoundError:没有名为“gi”的模块。