Como corrijo que o objeto 'module' não possui atributo 'required_version' ”para“ gi.require_version ('Gtk', '3.0') ”?

2

Estou trabalhando com algumas pessoas para criar um programa falso de detecção de notícias e fiz um grande progresso, mas, dentre cinco membros do grupo, apenas uma pessoa pode executar o programa em Python. Estou executando uma instalação limpa do Ubuntu 16.04 que tem apenas algumas horas e a pessoa que pode executar o programa tem o Fedora 26. O erro que recebo ao tentar executar o programa é:

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'

Eu fui e instalei o gtk + -3.0 com:

sudo apt install gtk+-3.0

Mas isso não ajuda.

Eu também instalei o Glade, com o qual a parte UI do programa é feita, para tentar corrigi-lo. Mas isso também não fez com que esse erro fosse embora.

Os arquivos podem ser encontrados aqui se você quiser tentar recriar o problema, estou perplexo ajuda é apreciada e eu tentei várias outras sugestões para correções como instalar o python-gobject e elas não corrigiram o problema.

Eu posso executar um programa de menor escala e obter o mesmo erro ( captura de tela ). Este programa é suficiente para produzir o problema:

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

A execução desse programa simplificado se parece com isso:

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$

EDIT: Após sugestões feitas por outra pessoa, criei um ambiente virtual e canalizei os requisitos do computador do Fedora para um arquivo txt e, no ambiente virtual, instale-os novamente; isso dá o mesmo erro.

A saída de python2 -c 'import gi; print(gi.__file__)' é:

/usr/local/lib/python2.7/dist-packages/gi/__init__.pyc
    
por Neil Boyd 29.10.2017 / 13:22

1 resposta

4

O módulo gi que você está importando não é o do pacote GI python-gi do Ubuntu, mas algo que você instalou manualmente em /usr/local/ . É uma versão muito antiga ou algo diferente que também é chamado de gi .

Remova-o e verifique se o pacote python-gi está instalado.

    
por Florian Diesch 30.10.2017 / 20:16