无法在Python中导入GST

1 投票
4 回答
11620 浏览
提问于 2025-04-16 22:42

我遇到了一些困扰。我正在按照这个教程进行学习(具体是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 个回答

1

在我的情况下,解决办法是把gstreamer的程序位置添加到我的PATH和PYTHONPATH中(不太确定第二个是否一定需要)。

我电脑上的位置是:

C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.7\bin

4

我在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\

然后在重新打开解释器后,就能用标准的方法导入了。

7

这是因为你在使用Python 2.7,而GST的默认版本是2.6。这个问题其实很简单就能解决:

首先,去到这个路径:C:\Program Files\OSSBuild\GStreamer\v0.10.6\sdk\bindings\python\v2.7\lib

然后把

gstreamer-0.10site-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。我觉得这可能一直都是你的问题所在。

撰写回答