Skip to content
  • Thibault Saunier's avatar
    python: Fix using overrides when not building PyGObject · 1babccfe
    Thibault Saunier authored and GStreamer Marge Bot's avatar GStreamer Marge Bot committed
    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.
    
    Part-of: <!1155>
    1babccfe