What do I have to install to resolve Could not find any typelib for GtkSource, Cannot import: GtkSourceView, cannot import name GtkSource
Asked Answered
O

1

7

I'm trying to apply a patch for meld from https://bugzilla.gnome.org/show_bug.cgi?id=680569 myself, and am having trouble with this:

$ 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

I know little about Python, and e.g. do not know (yet) what a typelib for Python is - enlighten me! ;-) I've looked around, and vaguely figured that this has something to do with an exotic fruit ;) named gir, but this doesn't seem to help:

$ 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

What am I missing? Thank you!

Ozonide answered 11/1, 2014 at 15:34 Comment(2)
I am guessing that you need the GIR typelib files for GtkSourceVIew installed.Harriman
By the way: It is not so easy to convert meld to a Python 3 application. The source cannot be converted using only 2to3.Louvar
C
11

To install the library you need, on a Debian/Ubuntu machine:

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

GtkSourceView is a C library that allows applications to display a text buffer with syntax highlight for code, and a bunch of other goodies.

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

The above package has the following description:

GtkSourceView is a text widget that extends the standard GTK+ 3.x text widget GtkTextView. It improves GtkTextView by implementing syntax highlighting and other features typical of a source editor. This package contains gobject introspection information.

Since Gtk+ 3.0 there is a system called Introspection that allows source code written in C to be analysed in order to dynamically generate bindings for other languages, like Python, Vala, etc. gir is for GObject Introspection Repository (I'm not sure about the R). Citing:

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

GObject introspection is a middleware layer between C libraries (using GObject) and language bindings. The C library can be scanned at compile time and generate a metadata file, in addition to the actual native C library. Then at runtime, language bindings can read this metadata and automatically provide bindings to call into the C library.

Crud answered 12/1, 2014 at 1:5 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.