Gtk-消息:加载模块失败

2 投票
3 回答
5354 浏览
提问于 2025-04-17 21:25

我在我的Ubuntu 13.10上成功安装了gtk+(看起来是这样!),我是按照这个链接的步骤来做的:http://python-gtk-3-tutorial.readthedocs.org/en/latest/install.html

但是当我运行下面这个简单的程序时:

 #!/usr/bin/python
from gi.repository import Gtk

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

我遇到了这个错误:

Gtk-Message: Failed to load module "overlay-scrollbar"
Gtk-Message: Failed to load module "unity-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"
Traceback (most recent call last):
  File "intro.py", line 4, in <module>
    win=GtkWindow()
NameError: name 'GtkWindow' is not defined

我搜索了一下,发现了一些类似的问题:

https://askubuntu.com/questions/342202/failed-to-load-module-canberra-gtk-module-but-already-installed https://askubuntu.com/questions/208431/failed-to-load-module-canberra-gtk-module?rq=1

但我还是遇到了同样的错误。

还有这些问题:

在Linux上使用Eclipse + PyDev进行Python Gtk+开发,无法解析导入:Gtk PyCharm无法解析PyGObject 3.0,但代码运行正常

这些问题也没有给出解决办法。

我该怎么解决这个问题呢?

更新1:所以,显然这个错误是因为代码中用的是GtkWindow而不是Gtk.Window,但即使我改正了这个,依然显示相同的警告(不过现在我没有错误了,输出也正确了)

相关问题:

3 个回答

-1

试着重新安装这个软件包,可能在安装的时候出现了错误。

0

对我来说,正确的做法是指定GTK模块的位置:只需在终端中输入

export GTK_PATH=/usr/lib/x86_64-linux-gnu/gtk-2.0

其他模块也是类似的道理。

1

根据你的错误追踪信息:

Traceback (most recent call last):
  File "intro.py", line 4, in <module>
    win=GtkWindow()
NameError: name 'GtkWindow' is not defined

在你代码的第4行,你写的是:

win = Gtk.Window()

但是错误信息显示你实际上写的是:

win=GtkWindow()

你在实际代码中不小心把GtkWindow之间的.给漏掉了,而在你发的例子里却修正了这个错误。我建议你再检查一下intro.py中的那一行,看看这样是否能解决你的问题。

  • 注意:这和加载那3个模块失败的警告没有任何关系。

撰写回答