如何修复“gi.require_version('Gtk', '3.0')”的“'module'对象没有属性'required_version'”?

如何修复“gi.require_version('Gtk', '3.0')”的“'module'对象没有属性'required_version'”?

我正在与一些人合作开发一个虚假新闻检测程序,并取得了一些重大进展,但小组 5 名成员中只有 1 人可以运行 Python 程序。我正在运行一个只有几个小时的全新安装的 Ubuntu 16.04,可以运行该程序的人有 Fedora 26。尝试运行该程序时收到的错误是:

conesco3@Conesco3:~/Documents/Alternative-News-Checker$ sudo python main.py
[sudo] password for conesco3: 
Traceback (most recent call last):
  File "main.py", line 6, in <module>
    gi.require_version('Gtk', '3.0')
AttributeError: 'module' object has no attribute 'require_version'

我去安装了 gtk+-3.0:

sudo apt install gtk+-3.0

但这没有帮助。

我还安装了 Glade(程序的 UI 部分就是用它制作的),尝试修复它。但这也没能解决这个错误。

这些文件可以在这里找到如果您想尝试重新创建该问题,我很困惑,因此任何帮助都将不胜感激,并且我尝试了其他几种修复建议,例如安装,python-gobject但它们都没有解决问题。

我可以运行一个较小规模的程序并得到相同的错误(截屏)该程序足以产生这个问题:

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

window = Gtk.Window(title="Hello World")
window.show()
window.connect("delete-event", Gtk.main_quit)
Gtk.main()

运行该简化的程序如下所示:

conesco3@Conesco3:~$ cd Desktop/
conesco3@Conesco3:~/Desktop$ python2 hello.py
Traceback (most recent call last):
  File "hello.py", line 2, in <module>
    gi.require_version("Gtk", "3.0")
AttributeError: 'module' object has no attribute 'require_version'
conesco3@Conesco3:~/Desktop$

编辑:根据其他人的建议,我创建了一个虚拟环境,并将 Fedora 计算机的要求传输到一个 txt 文件中,然后在虚拟环境中再次安装它们;这出现了同样的错误。

的输出python2 -c 'import gi; print(gi.__file__)'为:

/usr/local/lib/python2.7/dist-packages/gi/__init__.pyc

答案1

您要导入的模块gi不是来自 Ubuntu GI 包的模块python-gi,而是您在 中手动安装的模块/usr/local/。它要么是非常旧的版本,要么是碰巧也被称为 的不同版本gi

将其删除并确保该包python-gi已安装。

相关内容