7

我正在尝试自己从https://bugzilla.gnome.org/show_bug.cgi?id=680569为融合应用补丁,但遇到了问题:

$ git clone git://git.gnome.org/meld
$ cd meld
$ python setup.py build
$ bin/meld 
2014-01-11 16:30:44,736 ERROR root: Could not find any typelib for GtkSource
Cannot import: GtkSourceView
cannot import name GtkSource

我对 Python 知之甚少,例如(还)不知道 Python 的类型库是什么——请赐教!;-) 我环顾四周,模糊地认为这与一种异国水果有关 ;) 名为 gir,但这似乎没有帮助:

$ sudo apt-get install gir1.2-gtk-3.0 
gir1.2-gtk-3.0 is already the newest version.
$ sudo apt-get install gir1.2-gtk-2.0 
The following NEW packages will be installed:
  gir1.2-gtk-2.0
Setting up gir1.2-gtk-2.0 (2.24.20-1ubuntu1) ...
$ bin/meld 
2014-01-11 16:32:24,133 ERROR root: Could not find any typelib for GtkSource
Cannot import: GtkSourceView
cannot import name GtkSource

我错过了什么?谢谢!

4

1 回答 1

11

要在 Debian/Ubuntu 机器上安装您需要的库:

sudo apt-get install gir1.2-gtksource-3.0

GtkSourceView 是一个 C 库,它允许应用程序显示带有语法高亮代码的文本缓冲区,以及许多其他好东西。

https://wiki.gnome.org/Projects/GtkSourceView

上面的包有如下描述:

GtkSourceView 是一个文本小部件,它扩展了标准的 GTK+ 3.x 文本小部件 GtkTextView。它通过实现语法高亮和其他源编辑器的典型特性来改进 GtkTextView。此包包含 gobject 内省信息。

由于 Gtk+ 3.0 有一个称为Introspection的系统,它允许分析用 C 编写的源代码,以便为其他语言(如 Python、Vala 等)动态生成绑定。gir用于 GObject Introspection Repository(我不确定)。引用:

https://wiki.gnome.org/action/show/Projects/GObjectIntrospection?action=show&redirect=GObjectIntrospection#What_is_introspection.3F

GObject 自省是 C 库(使用 GObject)和语言绑定之间的中间件层。除了实际的本机 C 库之外,还可以在编译时扫描 C 库并生成元数据文件。然后在运行时,语言绑定可以读取此元数据并自动提供绑定以调用 C 库。

于 2014-01-12T01:05:40.587 回答