Gst.init 在 anaconda 下失败,但适用于原生 python
Gst.init fails under anaconda, but works with native python
Gst 的初始化在 python 下工作,由 ubuntu 安装,而不是 python 由 anaconda 安装:
我写了一个小脚本来展示会发生什么:
$ cat gstinit.py
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
Gst.init(None)
print("Done!")
这是使用 ubuntu python:
的结果
$ /usr/bin/python2.7 gstinit.py
Done!
但只需使用 anaconda 安装的 python
即可得到:
$ python gstinit.py
** (process:27029): WARNING **: Failed to load shared library 'libgstreamer-1.0.so.0' referenced by the typelib: libiconv.so.2: cannot open shared object file: No such file or directory
Traceback (most recent call last):
File "gstinit.py", line 4, in <module>
Gst.init(None)
gi._error.GError: g-invoke-error-quark: Could not locate gst_init: libiconv.so.2: cannot open shared object file: No such file or directory (1)
搜索失败的库成功:
$ ls -lt $(find /usr -name libgstreamer-1.0.so.0)
lrwxrwxrwx 1 root root 27 sept. 6 15:16 /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 -> libgstreamer-1.0.so.0.803.0
lrwxrwxrwx 1 root root 27 sept. 6 15:12 /usr/lib/i386-linux-gnu/libgstreamer-1.0.so.0 -> libgstreamer-1.0.so.0.803.0
这不是我第一次遇到 gstreamer 和 anaconda 的问题。这次,它跟在 conda update
之后。下面是anaconda下gstreamer的安装包:
$ conda list | grep gst
gst-plugins-base 1.8.0 0 conda-forge
gstreamer 1.8.0 1 conda-forge
我的解决方案是:
- 删除蟒蛇,
- 重新安装(不是最新的 4.2.0 版,而是 4.1.0 版),
在任何其他包之前安装 PyGObject:
conda install -c pkgw pygobject3=3.18.2
这对我有用 https://github.com/conda-forge/gstreamer-feedstock。它使用 conda-forge。
Gst 的初始化在 python 下工作,由 ubuntu 安装,而不是 python 由 anaconda 安装:
我写了一个小脚本来展示会发生什么:
$ cat gstinit.py
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
Gst.init(None)
print("Done!")
这是使用 ubuntu python:
的结果$ /usr/bin/python2.7 gstinit.py
Done!
但只需使用 anaconda 安装的 python
即可得到:
$ python gstinit.py
** (process:27029): WARNING **: Failed to load shared library 'libgstreamer-1.0.so.0' referenced by the typelib: libiconv.so.2: cannot open shared object file: No such file or directory
Traceback (most recent call last):
File "gstinit.py", line 4, in <module>
Gst.init(None)
gi._error.GError: g-invoke-error-quark: Could not locate gst_init: libiconv.so.2: cannot open shared object file: No such file or directory (1)
搜索失败的库成功:
$ ls -lt $(find /usr -name libgstreamer-1.0.so.0)
lrwxrwxrwx 1 root root 27 sept. 6 15:16 /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 -> libgstreamer-1.0.so.0.803.0
lrwxrwxrwx 1 root root 27 sept. 6 15:12 /usr/lib/i386-linux-gnu/libgstreamer-1.0.so.0 -> libgstreamer-1.0.so.0.803.0
这不是我第一次遇到 gstreamer 和 anaconda 的问题。这次,它跟在 conda update
之后。下面是anaconda下gstreamer的安装包:
$ conda list | grep gst
gst-plugins-base 1.8.0 0 conda-forge
gstreamer 1.8.0 1 conda-forge
我的解决方案是:
- 删除蟒蛇,
- 重新安装(不是最新的 4.2.0 版,而是 4.1.0 版),
在任何其他包之前安装 PyGObject:
conda install -c pkgw pygobject3=3.18.2
这对我有用 https://github.com/conda-forge/gstreamer-feedstock。它使用 conda-forge。