title: Cannot load python gstreamer elements
body: <p>I'm following a guide at <a href="https://mathieuduponchelle.github.io/2018-02-01-Python-Elements.html?gi-language=undefined" rel="noreferrer">https://mathieuduponchelle.github.io/2018-02-01-Python-Elements.html?gi-language=undefined</a> to create a sample gstreamer element in Python. However, I can't get GStreamer to load it. I've been fiddling with the <code>GST_PLUGIN_PATH</code> but I can't get my python files to be found. I can get GStreamer to find compiled .so elements, but the python elements seem to evade the plugin loader.</p>
  
  <p>I've installed gstreamer1.0, pygobject, and gst-python to the best of my ability onto Debian 9.8, <code>Linux fe34e822e54e 4.18.0-17-generic #18~18.04.1-Ubuntu SMP Fri Mar 15 15:27:12 UTC 2019 x86_64</code>:</p>
  
  <pre><code>apt install gstreamer1.0-tools
  apt install python3-gst-1.0 python-gst-1.0  # install python bindings for gstreamer
  apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0  # Install PyGObject as per https://pygobject.readthedocs.io/en/latest/getting_started.html#ubuntu-getting-started
  </code></pre>
  
  <p>I root in <code>/tmp/my_gtest</code>:</p>
  
  <pre><code>$ ls
  python
  $ ls python/
  srcelement.py
  $ GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD gst-inspect-1.0 audiotestsrc_py
  No such element or plugin 'audiotestsrc_py'
  $ GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD GST_DEBUG=4 gst-inspect-1.0 --gst-plugin-path=/tmp/g/ audiotestsrc_py
  0:00:00.000117317   900 0x560506a39a00 INFO                GST_INIT gst.c:510:init_pre: Initializing GStreamer Core Library version 1.10.4
  0:00:00.000236545   900 0x560506a39a00 INFO                GST_INIT gst.c:511:init_pre: Using library installed in /usr/lib/x86_64-linux-gnu
  0:00:00.000264897   900 0x560506a39a00 INFO                GST_INIT gst.c:522:init_pre: Linux fe34e822e54e 4.18.0-17-generic #18~18.04.1-Ubuntu SMP Fri Mar 15 15:27:12 UTC 2019 x86_64
  0:00:00.000422525   900 0x560506a39a00 INFO                GST_INIT gst.c:427:add_path_func: Adding plugin path: "/tmp/my_gtest/", will scan later
  0:00:00.001049692   900 0x560506a39a00 INFO                GST_INIT gstmessage.c:126:_priv_gst_message_initialize: init messages
  0:00:00.002382651   900 0x560506a39a00 INFO                GST_INIT gstcontext.c:83:_priv_gst_context_initialize: init contexts
  0:00:00.002634936   900 0x560506a39a00 INFO      GST_PLUGIN_LOADING gstplugin.c:316:_priv_gst_plugin_initialize: registering 0 static plugins
  0:00:00.002687971   900 0x560506a39a00 INFO      GST_PLUGIN_LOADING gstplugin.c:224:gst_plugin_register_static: registered static plugin "staticelements"
  0:00:00.002695054   900 0x560506a39a00 INFO      GST_PLUGIN_LOADING gstplugin.c:226:gst_plugin_register_static: added static plugin "staticelements", result: 1
  0:00:00.002703860   900 0x560506a39a00 INFO            GST_REGISTRY gstregistry.c:1738:ensure_current_registry: reading registry cache: /root/.cache/gstreamer-1.0/registry.x86_64.bin
  0:00:00.007377882   900 0x560506a39a00 INFO            GST_REGISTRY gstregistrybinary.c:619:priv_gst_registry_binary_read_cache: loaded /root/.cache/gstreamer-1.0/registry.x86_64.bin in 0.004664 seconds
  0:00:00.007421588   900 0x560506a39a00 INFO            GST_REGISTRY gstregistry.c:1594:scan_and_update_registry: Validating plugins from registry cache: /root/.cache/gstreamer-1.0/registry.x86_64.bin
  0:00:00.007427719   900 0x560506a39a00 INFO            GST_REGISTRY gstregistry.c:1606:scan_and_update_registry: Scanning plugin path: "/tmp/my_gtest/"
  0:00:00.008249182   900 0x560506a39a00 INFO            GST_REGISTRY gstregistry.c:1696:scan_and_update_registry: Registry cache has not changed
  0:00:00.008255509   900 0x560506a39a00 INFO            GST_REGISTRY gstregistry.c:1773:ensure_current_registry: registry reading and updating done, result = 1
  0:00:00.008277874   900 0x560506a39a00 INFO                GST_INIT gst.c:720:init_post: GLib runtime version: 2.50.3
  0:00:00.008282666   900 0x560506a39a00 INFO                GST_INIT gst.c:722:init_post: GLib headers version: 2.50.3
  0:00:00.008286452   900 0x560506a39a00 INFO                GST_INIT gst.c:723:init_post: initialized GStreamer successfully
  No such element or plugin 'audiotestsrc_py'
  </code></pre>
  
  <p>A hunch is that gst-python isn't properly installed, or my gstreamer wasn't compiled properly (can't trust those packages?). However, the python binding seems fine, as when I run <code>python3</code>:</p>
  
  <pre><code>&gt;&gt;&gt; import gi
  &gt;&gt;&gt; gi.require_version('Gst', '1.0')
  &gt;&gt;&gt; from gi.repository import GObject, Gst
  &gt;&gt;&gt; GObject.threads_init()
  &gt;&gt;&gt; Gst.init(None)
  &gt;&gt;&gt; Gst.ElementFactory.make("tee")
  &lt;__gi__.GstTee object at 0x7f438eef1318 (GstTee at 0x564f28de8000)&gt;
  &gt;&gt;&gt; Gst.ElementFactory.make("audiotestsrc_py")
  &gt;&gt;&gt; 
  </code></pre>
  
  <p>You see the same behaviour where the <code>audiotestsrc_py</code> can't be found.</p>
  
  <p>Not sure what to try next, probably going to have to develop the gst plugin in C.</p>