13.04 Python gi._glib 没有属性 GError

13.04 Python gi._glib 没有属性 GError

我有一个 Python 应用程序在 12.10 上运行没有问题,但在升级到 13.04 时,应用程序失败并出现以下错误:

except gi._glib.GError, e:

AttributeError:'module' 对象没有属性 'GError'

与 13.04 相关的 Python 2 Gtk 库有变化吗?

答案1

带下划线的函数、方法、属性等在 Python 中用作内部方法。这些可能会更改或删除,且不会发出警告,因此最好不要在该包之外使用这些方法。

请尝试以下操作:

>>> from gi.repository import GObject, GLib
>>> GObject.GError
<class 'gi._glib.GError'>
>>> GLib.GError
<class 'gi._glib.GError'>

这也适用于 Ubuntu 12.10 及更早版本。

答案2

此导入错误发生在 Ubuntu 14.04 上,但不发生在 Ubuntu 12.04 上。基本上是由于从 Python 2.x 过渡到 Python 3。许多模块被重命名或合并。Python 3 不向后兼容 Python 2.x。因此,请将此添加到陷阱列表中。

ImportError: No module named 'gi._glib'

debian.org 错误报告 #705387

from gi._glib import GError

变成

from gi.repository.GLib import GError

相关内容