Не удается импортировать GST в Python - PullRequest
1 голос
/ 02 августа 2011

Я в затруднительном положении. Я следую следующему уроку (в частности, 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, в импорт GST Файл "C: \ Program Files \ OSSBuild \ GStreamer \ v0.10.6 \ lib \ site-packages \ gst-0.10 \ gst__init __. Py", строка 193, в из _gst импорта * ImportError: Ошибка загрузки DLL: указанный модуль не найден.

Как получить модуль gst для импорта? (Имейте в виду, я проверил, и Pygst импортирует.)

Заранее спасибо!

Ответы [ 4 ]

7 голосов
/ 07 августа 2011

Это потому, что вы используете 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.

EDIT: После попытки установить Gstreamer на новый компьютер я обнаружил, что не могу import pygst, пока не удалюдополнительная обратная косая черта от C:\Program Files\OSSBuild\Gstreamer\v0.10.7\lib\site-packages\ в PYTHONPATH.Я полагаю, что это могло быть вашей проблемой все время.

4 голосов
/ 25 сентября 2012

У меня была та же проблема в Windows 7 с Python 2.7, но опубликованное решение не сработало.Оказалось, что с моими переменными пути что-то не так, я все еще не знаю почему.Вот как я это исправил:

  • Я создал файл pygst.pth в Python27 site-packages
  • Я скопировал путь из моих переменных окружения PYTHONPATH, который был C:\Program Files (x86)\OSSBuild\GStreamer\v0.10.7\lib\site-packages\ на моем компьютере, в файл pygst.pth

После открытия интерпретатора его можно было импортировать стандартным способом.

1 голос
/ 13 августа 2013

В моем случае ответ заключался в добавлении расположения двоичных файлов gstreamer в мой PATH и мою PYTHONPATH (не уверен, требуется ли второе)

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

- это местоположение на моей машине.

0 голосов
/ 14 сентября 2013

Иногда в вашей системе есть другая версия того же самого dll с причиной проблемы.Чтобы узнать, какая dll вызывает проблему, вы пишете простой скрипт на python, загружающий файл dll или pyd.При выполнении с python.exe, он покажет вам диалоговое окно с гораздо лучшим сообщением об ошибке, чем «ImportError: Ошибка загрузки DLL: указанный модуль не найден».

Вот скрипт Python.

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