from gi.repository import Gtk crashes on MacOS 13.2 (22D49)
environment: python3.12 pygobject3.46.0_1 gtk3.24.41
reproduce: brew install pygobject3 brew gtk3.24.41 enter python3 and execute: from gi.repository import Gtk
then something goes wrong:
>>> from gi.repository import Gtk
/opt/homebrew/lib/python3.12/site-packages/gi/module.py:168: Warning: cannot register existing type 'AtkImplementorIface'
g_type = info.get_g_type()
/opt/homebrew/lib/python3.12/site-packages/gi/module.py:203: Warning: g_type_get_qdata: assertion 'node != NULL' failed
type_ = g_type.pytype
/opt/homebrew/lib/python3.12/site-packages/gi/types.py:247: Warning: cannot register existing type 'AtkImplementorIface'
register_interface_info(cls.__info__.get_g_type())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 921, in _load_unlocked
File "<frozen importlib._bootstrap>", line 813, in module_from_spec
File "/opt/homebrew/lib/python3.12/site-packages/gi/importer.py", line 147, in create_module
dynamic_module = load_overrides(introspection_module)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/gi/overrides/__init__.py", line 118, in load_overrides
override_mod = importlib.import_module(override_package_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.12/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/gi/overrides/Gtk.py", line 100, in <module>
class Widget(Gtk.Widget):
^^^^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/gi/module.py", line 173, in __getattr__
interfaces = tuple(interface for interface in get_interfaces_for_object(info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/gi/module.py", line 95, in get_interfaces_for_object
interfaces.append(getattr(module, name))
^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/gi/module.py", line 213, in __getattr__
wrapper = metaclass(name, bases, dict_)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.12/site-packages/gi/types.py", line 247, in __init__
register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
Edited by Arjan Molenaar