Ошибка имени объекта даже при отсутствии ошибки импорта

Итак, я делаю аппендикатор pygtk и требует, чтобы определенная функция вызывалась регулярно. gobject.timeout_add (millisec, function) является одним из решений этой проблемы.

Я импортировал все модули gi таким образом:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import GObject
gi.require_version('Notify', '0.7')
gi.require_version('AppIndicator3', '0.1')

from gi.repository import Gtk as gtk
from gi.repository import AppIndicator3 as appindicator
from gi.repository import Notify as notify

и не было никакой ошибки импорта вообще. Затем в моей основной функции я вызываю:

gobject.timeout_add(2000,pr) 

Это фактический фрагмент кода:

def main():
    indicator = appindicator.Indicator.new(APPINDICATOR_ID, os.path.abspath('spotify.svg'),   appindicator.IndicatorCategory.SYSTEM_SERVICES)
    indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
    indicator.set_menu(build_menu())
    notify.init(APPINDICATOR_ID)
    gobject.timeout_add(2000,pr) 
    gtk.main()

и получите следующую ошибку:

Traceback (most recent call last):
  File "appin.py", line 128, in <module>
    gobject.timeout_add(2000,pr) 
NameError: name 'gobject' is not defined

Даже если я заменю gobject на GObject, я получаю ту же ошибку.

Поэтому, пожалуйста, помогите мне решить то же самое. Заранее спасибо!!

1 ответ

Решение

Вы забыли as gobject в вашем заявлении на импорт. Вы запомнили это как минимум для других библиотек. Помните, что Python чувствителен к регистру; GObject а также gobject разные.

Другие вопросы по тегам