我不能让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'
答案 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