我有什么安装来解决无法找到GtkSource的任何类型库,无法导入:GtkSourceView,无法导入名称GtkSource

时间:2014-01-11 15:34:26

标签: python pygtk pygobject meld

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

$ 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

我错过了什么?谢谢!

1 个答案:

答案 0 :(得分: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(我不确定 R )。举例:

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

  
    

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