【问题标题】:Cannot Import GST in Python无法在 Python 中导入 GST
【发布时间】:2011-08-02 05:03:45
【问题描述】:

我陷入了困境。我正在关注以下教程(特别是 6.4.2)

http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer

我正在运行 Python 2.7、PyGTK 2.24 和 GStreamer WinBuilds 10.7(主安装程序和 SDK)。

当我尝试编译程序时,出现以下错误:

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 进口消费税 文件“C:\Program Files\OSSBuild\GStreamer\v0.10.6\lib\site-packages\gst-0.10\gst__init__.py”,第 193 行,在 从 _gst 进口 * ImportError: DLL load failed: 找不到指定的模块。

如何让 gst 模块导入? (请注意,我检查了,pygst 确实导入了。)

提前谢谢你!

【问题讨论】:

    标签: python pygtk gstreamer


    【解决方案1】:

    这是因为您使用的是 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 后,我发现我无法 import pygst,直到我从 PYTHONPATH 中的 C:\Program Files\OSSBuild\Gstreamer\v0.10.7\lib\site-packages\ 中删除了多余的反斜杠。我相信这可能一直是您的问题。

    【讨论】:

    • 所以你说C:\Program Files\OSSBuild\GStreamer\v0.10.6\sdk\bindings\python\v2.7\lib不存在?如果没有,请安装 v0.10.7,因为肯定有它(因为我正在使用它)。否则,您可以四处寻找,看看您是否在其他地方有一个名为 v2.7 的文件夹。
    • 您介意更新您的问题以包含您在 v0.10.7 中遇到的错误吗?对于一个确切的错误,我可能会提供更多帮助。不过现在,您可以尝试从它们的安装程序中修复 OSSBuild 和 Python。此外,如果您不介意使用 Python 2.6,您可以将其与 GST 一起使用(通常)。
    • 您是否为 SDK 和 GST 安装了 v0.10.7?
    • 我能推荐的最后一件事是将文件夹C:\Program Files\OSSBuild\GStreamer\v0.10.7\lib\gstreamer-0.10 中的libgstpython-v2.7.dll 重命名为libgstpython-v2.6.dll。如果libgstpython-v2.7.dll 不存在,那就是问题所在,您可能必须在v2.7 文件夹中的某个位置找到它。另外,如果您使用的是 64 位 Python(在 64 位系统上),我认为 Gstreamer 不起作用。
    • 从这里:code.google.com/p/ossbuild/downloads/list。我在带有 Python 2.7.2 的 Windows XP 上使用 LGPL Gstreamer v0.10.7。我正在使用来自ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.28 的 pyGObject(因为我不需要 pyGTK)。我最初遇到了和你完全相同的问题,所以我双启动了 Ubuntu,并用它与 Gstreamer 一起编程,直到我弄清楚如何让它在 Windows 上运行。
    【解决方案2】:

    我在使用 Python 2.7 的 Windows 7 上遇到了同样的问题,但发布的解决方案不起作用。结果发现我的路径变量有些可疑,我仍然不知道为什么。这是我修复它的方法:

    • 我在 Python27 site-packages 中创建了一个文件 pygst.pth
    • 我复制了 从我的环境变量PYTHONPATH(我的计算机上的C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.7\lib\site-packages\)到文件pygst.pth 的路径

    然后在重新打开解释器后可以使用标准方法导入。

    【讨论】:

    • 那么文件的内容是什么呢?我的意思是 pygst.pth 文件。我只需要复制路径还是需要导入一些python模块?
    【解决方案3】:

    在我的情况下,答案是将 gstreamer 二进制文件的位置添加到我的 PATH 和我的 PYTHONPATH(不确定是否需要第二个)

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

    是我机器上的位置。

    【讨论】:

      【解决方案4】:

      有时您的系统中存在其他版本的相同 dll 导致问题。要找出导致问题的 dll,请编写一个简单的 python 脚本,加载 dll 或 pyd 文件。使用 python.exe 执行时,它会显示一个对话框,其中包含比“ImportError: DLL load failed: The specified module could not be found.”更好的错误消息。

      这是python脚本。

      导入 ctypes ctypes.CDLL("C:\gstreamer-sdk\0.10\x86\lib\python2.7\site-packages\gst-0.10\gst\_gst.pyd")

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-13
        • 2010-11-19
        • 2016-05-27
        • 2013-02-17
        • 2016-05-12
        • 2018-11-30
        • 2011-07-04
        • 2017-09-27
        相关资源
        最近更新 更多