On 31.01.2016 09:04 AM, Ondřej Grover wrote:
I believe commit e44e848415eff3e4dab69e990adfc447e79143f8 which introduced GTK3 notification support broke GTK2 notification support fallback. The problem was not present in 0.5.0.4
I believe the problem lies in this import construct in pyhoca/wxgui/notify.py which will fail the same way even when put alone in a file
try: from gi.repository import Notify as _Notify except ImportError: import pynotify as _Notify
I think the problem is that even if the GTK3 Notify module is not available, many GTK3 libraries get loaded and then the pynotify import fails with
ImportError: could not import gobject (could not find _PyGObject_API object)
This is the same exception I see when running pyhoca-gui.
I think some more sophisticated GTK version selection mechanism is needed, one that would not start loading conflicting libraries.
Thanks for the report. I think your analysis is spot-on.
It looks like a lot of modules from gobject-introspection are loaded, until it hits an error importing the Notify module.
Then, importing pynotify fails, because the old, static python-gobject module that pynotify depends on conflicts with the new python-gi (gobject-introspection) modules.
As a workaround for now I just removed that GTK3 import on my system.
But it's just that, a workaround.
I've been looking around for a way to actually rollback a failing module import and came up with zit.
The only "actual" solution I currently see is removing pynotify support completely, because the gobjects interface is deprecated anyway. However, that'll break notification support on older systems not having GI/GTK3.
Not that I'd like it, of course. A working fallback would have been great.
Mihai