2010-05-20 4 views
1

저는 파이썬에서 초보자이며 pygtk를 사용하여 GUI 인터페이스로 pyinotify를 사용하려고합니다. 두 가지 클래스, 많이하지 않는 gtk 클래스, 모니터링 만하는 클래스 및 모니터링을 처리하는 클래스가 있습니다.Pyinotify가 pygtk와 함께 실행되지 않습니다

별도로 실행하면 작업을 수행하지만 다른 하나에서 gtk 클래스를로드하려고하면 gtk 클래스 만 실행되고 모니터 클래스는 GUI를 종료 할 때만 실행됩니다. 마지막 줄에 주석을 달면 모니터가 잘 돌아갑니다. "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() 

감사합니다. 코멘트 당

+0

http://faq.pygtk.org/index.py?file=faq20.006.htp&req=show? 코드 구조가 게시 된 예제 코드와 어떻게 다른가요? 당신은'gobject.threads_init()'를 사용하고 --enable-threads 플래그로 컴파일 된 pygtk였습니까? – unutbu

+0

훌륭한 링크 unutbu, 나는 단지 "gobject.threads_init()"을 넣었습니다. FAQ가 말했듯이 모든 것이 잘되었습니다. 감사합니다. – juniorbl

+0

좋아요! 다행 당신을 위해 일했다. – unutbu

답변

4

이 솔루션은 스크립트의 상단에

gobject.threads_init() 

를 추가 할 것으로 보인다. pygtk에서 스레드를 사용하는 방법에 대한 유용한 정보는 this faq에서 찾을 수 있습니다.

관련 문제