Skip to content

gst-env: Fix python PYTHONPATH in Debian

From the Debian Python Wiki: Debian based distros uses "dist-packages" instead of "site-packages".

For instance in Ubuntu 20.04:

meson introspect builddir --installed | python -m json.tool | rg _gi_
    "/home/gstreamer/builddir/subprojects/pygobject/gi/_gi_cairo.cpython-38-x86_64-linux-gnu.so": "/usr/local/lib/python3/dist-packages/gi/_gi_cairo.cpython-38-x86_64-linux-gnu.so",
    "/home/gstreamer/builddir/subprojects/gst-python/gi/overrides/_gi_gst.cpython-38-x86_64-linux-gnu.so": "/usr/local/lib/python3/dist-packages/gi/overrides/_gi_gst.cpython-38-x86_64-linux-gnu.so",

Commands to reproduce the bug. Run in a Python CLI:

import gi
gi.require_version("Gst", "1.0")
from gi.repository import Gst
Gst
from gi.overrides import _gi_gst
_gi_gst

Output (with the bug):

<GstProxyModule <IntrospectionModule 'Gst' from '/home/gstreamer/builddir/subprojects/gstreamer/gst/Gst-1.0.typelib'>>
<module 'gi.overrides._gi_gst' from '/usr/lib/python3/dist-packages/gi/overrides/_gi_gst.cpython-38-x86_64-linux-gnu.so'>

Expected output:

<GstProxyModule <IntrospectionModule 'Gst' from '/home/gstreamer/builddir/subprojects/gstreamer/gst/Gst-1.0.typelib'>>
<module 'gi.overrides._gi_gst' (/home/gstreamer/builddir/subprojects/gst-python/gi/overrides/_gi_gst.cpython-38-x86_64-linux-gnu.so)>

Ubuntu without development environment (no gst-env.py):

<GstProxyModule <IntrospectionModule 'Gst' from '/usr/lib/x86_64-linux-gnu/girepository-1.0/Gst-1.0.typelib'>>
<module 'gi.overrides._gi_gst' from '/usr/lib/python3/dist-packages/gi/overrides/_gi_gst.cpython-38-x86_64-linux-gnu.so'>

Implemented a fast solution replacing "dist-packages" by "site-packages" in all the cases. Guess if the enviroment is Debian based without using distro (external depency) or distutils (deprecated) is not simple.

Merge request reports