我试图GST_PLUGIN_PATH
在集成测试中加载自定义 gstreamer 插件之前设置环境变量,所以我需要以GST_PLUGIN_PATH
编程方式进行更改。
但是如果没有GST_PLUGIN_PATH
在 shell 中设置,gst.element_factory_make
就会失败。
我正在使用 gstreamer-0.10、python2.6 和 linux 3.2.0 (debian 6)。
例子:
import gst, os
os.environ['GST_PLUGIN_PATH'] = '/tmp'
print gst.element_factory_make('myelem')
没有GST_PLUGIN_PATH
在 shell 中设置:
$ export GST_PLUGIN_PATH=
$ ./gstpathtest.py
Traceback (most recent call last):
File "./gstpathtest.py", line 7, in <module>
print gst.element_factory_make('myelem')
gst.ElementNotFoundError: myelem
在GST_PLUGIN_PATH
shell 中设置:
$ GST_PLUGIN_PATH=/tmp ./gstpathtest.py
/MyElem:myelem0 (__main__.MyElem)
或GST_PLUGIN_PATH
在外壳中导出:
$ export GST_PLUGIN_PATH=/tmp
$ ./gstpathtest.py
/MyElem:myelem0 (__main__.MyElem)
运行时,GST_DEBUG=6
我注意到它myelem
被创建但立即未引用并被销毁,这可能是错误的原因。
我什至尝试将路径添加到os.environ['PATH']
,或直接添加到,sys.path
但它没有改变任何东西。
我的主要问题是:我在python 级别(以及究竟是什么)做错了什么,或者它是否表明myelem插件本身存在一些错误?