无法在Python中导入GST
我遇到了一些困扰。我正在按照这个教程进行学习(具体是6.4.2部分)
http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer
我使用的环境是Python 2.7,PyGTK 2.24,还有GStreamer WinBuilds 10.7(包括主安装包和SDK)。
当我尝试编译程序时,出现了以下错误:
追踪信息(最近的调用在最前面): 文件 "", 第1行, 在 import gst 文件 "C:\Program Files\OSSBuild\GStreamer\v0.10.6\lib\site-packages\gst-0.10\gst__init__.py", 第193行, 在 from _gst import * 导入错误:DLL加载失败:找不到指定的模块。
我该如何导入gst模块呢?(顺便说一下,我检查过,pygst是可以导入的。)
提前谢谢你!
4 个回答
在我的情况下,解决办法是把gstreamer的程序位置添加到我的PATH和PYTHONPATH中(不太确定第二个是否一定需要)。
我电脑上的位置是:
C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.7\bin
我在Windows 7上用Python 2.7时也遇到了同样的问题,但网上的解决办法没用。后来我发现我的路径变量有点问题,但我还是不太明白为什么会这样。以下是我解决这个问题的方法:
- 我在Python27的
site-packages
文件夹里创建了一个文件pygst.pth
- 我把环境变量
PYTHONPATH
中的路径复制到这个pygst.pth
文件里。我的路径是C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.7\lib\site-packages\
然后在重新打开解释器后,就能用标准的方法导入了。
这是因为你在使用Python 2.7,而GST的默认版本是2.6。这个问题其实很简单就能解决:
首先,去到这个路径:C:\Program Files\OSSBuild\GStreamer\v0.10.6\sdk\bindings\python\v2.7\lib
然后把
gstreamer-0.10
和site-packages
这两个文件夹复制到
C:\Program Files\OSSBuild\GStreamer\v0.10.6\lib
,并替换掉里面已有的文件。
接着,删除这个文件:C:\Program Files\OSSBuild\GStreamer\v0.10.6\lib\gstreamer-0.10\libgstpython-v2.6.dll
(或者把它的后缀改成.dllx
之类的)。
现在应该就能正常工作了。
另外,如果你不想改GST来适应Python 2.7,你也可以直接使用Python 2.6。
编辑:在我尝试在新电脑上安装Gstreamer时,我发现直到我把PYTHONPATH
中的这个路径:C:\Program Files\OSSBuild\Gstreamer\v0.10.7\lib\site-packages\
里的多余反斜杠去掉,我才能import pygst
。我觉得这可能一直都是你的问题所在。