Skip to content

python: Fix using overrides when not building PyGObject

Thibault Saunier requested to merge thiblahute/gstreamer:overrides into main

Since 547570cd we do not always build PyGObject and our development environment is broken when trying to use GStreamer python when built against system PyGObject with the following error importing Gst in there:

12345678** (gst-plugin-scanner:710617): CRITICAL **: 11:45:02.343: can't find gi.repository.Gst
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/gi/repository/__init__.py", line 23, in <module>
    from ..importer import DynamicImporter
  File "/usr/lib64/python3.9/site-packages/gi/importer.py", line 33, in <module>
    from .overrides import load_overrides
ImportError: cannot import name 'load_overrides' from 'gi.overrides' (/var/home/thiblahute/devel/gstreamer/gstreamer/subprojects/gst-editing-services/bindings/python/gi/overrides/__init__.py)
Factory Details:

The approach to fixing it is to implement override gi in gst-python/gi/ which we add to PYTHONPATH) and in there reset the gi module to the right place and we get overrides from paths from _GI_OVERRIDES_PATH we set in gst-env.py which points to all the overrides that will be installed.

cc @meh @hadess

Edited by Thibault Saunier

Merge request reports