web-dev-qa-db-fra.com

Comment corriger "l'objet 'module' n'a pas d'attribut" version_requis "" pour "gi.require_version (" Gtk "," 3.0 ")"?

Je travaille avec certaines personnes pour créer un programme de détection de fausses nouvelles et j'ai réalisé de grands progrès, mais sur 5 membres du groupe, une seule personne peut exécuter le programme Python. J'exécute une installation propre d'Ubuntu 16.04 datant de quelques heures à peine et la personne pouvant exécuter le programme dispose de Fedora 26. L'erreur que j'obtiens lors de l'exécution du programme est la suivante:

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'

Je suis allé installer gtk + -3.0 avec:

Sudo apt install gtk+-3.0

Mais ça n'aide pas.

J'ai également installé Glade, qui contient la partie interface utilisateur du programme, pour essayer de le réparer. Mais cela n'a pas fait disparaître cette erreur non plus.

Les fichiers peuvent être trouvés ici Si vous voulez essayer de recréer le problème, je suis perplexe, toute aide est donc appréciée et j'ai essayé plusieurs autres suggestions de correctifs comme l'installation de python-gobject et ils n'ont pas résolu le problème. problème.

Je peux exécuter un programme à plus petite échelle et obtenir la même erreur ( capture d'écran ). Ce programme est suffisant pour produire le problème:

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()

L'exécution de ce programme simplifié ressemble à ceci:

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$

ÉDITER: Après les suggestions de quelqu'un d'autre, j'ai créé un environnement virtuel et transféré les exigences de l'ordinateur Fedora dans un fichier txt et, dans l'environnement virtuel, je les ai réinstallées. cela donne la même erreur.

La sortie de python2 -c 'import gi; print(gi.__file__)' est:

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

Le module gique vous importez n'est pas celui du paquet GI d'Ubuntu python-gi, mais quelque chose que vous avez installé manuellement dans /usr/local/. C'est aussi une version très ancienne ou quelque chose de différent qui s'appelle également giname__.

Supprimez-le et assurez-vous que le package python-gi est installé.

4
Florian Diesch