错误"无法找到Gtk"的任何类型库使用Python3和GTK3

时间:2014-07-30 12:34:53

标签: python-3.x gtk3 pygobject gobject-introspection

我不能让Python3与GTK3一起使用。我处于集群环境中,我从源代码中重新编译了所有内容。

当我运行一个简单的例子时:

from gi.repository import Gtk

win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

我有以下错误:

    ERROR:root:Could not find any typelib for Gtk
    Traceback (most recent call last):
      File "gtk3_example.py", line 2, in 
        from gi.repository import Gtk
    ImportError: cannot import name 'Gtk'

3 个答案:

答案 0 :(得分:3)

通常需要安装其他软件包,具体取决于您想要内省的内容。我发现这一点至关重要的是gir1.2-gtk-3.0(或2.0,取决于你编码的版本)。

答案 1 :(得分:2)

问题是由于gobject-introspection中没有引用GTK3的编译版本。

通过在gobject-introspection中列出.typelib文件来检查问题很简单


    $ which g-ir-scanner
    /Produits/publics/x86_64.Linux.RH6/gobject-introspection/1.40.0/bin/g-ir-scanner

    $ ls /Produits/publics/x86_64.Linux.RH6/gobject-introspection/1.40.0/lib/girepository-1.0/
    cairo-1.0.typelib     fontconfig-2.0.typelib  GIRepository-2.0.typelib  GModule-2.0.typelib  win32-1.0.typelib   xlib-2.0.typelib
    DBus-1.0.typelib      freetype2-2.0.typelib   GL-1.0.typelib            GObject-2.0.typelib  xfixes-4.0.typelib  xrandr-1.3.typelib
    DBusGLib-1.0.typelib  Gio-2.0.typelib         GLib-2.0.typelib          libxml2-2.0.typelib  xft-2.0.typelib

应该通过使用configure选项--enable-introspection=yes重新编译GTK(及其依赖项)来解决问题。

答案 2 :(得分:-1)

尝试使用以下代码:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import GTK