Pyinotify не работает с pygtk - PullRequest
1 голос
/ 20 мая 2010

Я новичок в python и пытаюсь использовать pyinotify с графическим интерфейсом, используя pygtk. У меня есть два класса, мой класс gtk, который мало что делает, только отображает вещи, и класс, который обрабатывает мониторинг.

Когда я запускаю их отдельно, они выполняют свою работу, но когда я пытаюсь загрузить класс gtk из другого, он запускает только класс gtk, класс монитора запускается только после выхода из графического интерфейса. Если я прокомментирую последнюю строку, монитор работает нормально. Я думаю, что «myGTK.main» блокирует весь процесс. Что я могу сделать?

pyinotify.ProcessEvent.__init__(self)
self.notifier = pyinotify.ThreadedNotifier(self.watch_manager, self)    
self.watch_manager.add_watch('/test', pyinotify.IN_CREATE, rec=True)
self.notifier.start()
self.myGTK.main()

Спасибо.

1 Ответ

4 голосов
/ 21 мая 2010

Согласно комментариям, решение состоит в том, чтобы добавить

gobject.threads_init()

в верхней части скрипта. Эта и другая полезная информация об использовании потоков с pygtk может быть найдена в this faq .

...