I am trying to implement a VLC player control into a PyQGIS script.

There is python-vlc package that should be run with VLC Player installed. I have installed this package through OSGeo4W.bat but when I try import vlc Python says that:

specific DLL cannot be found

It's a libvlc.dll lib which is mandatory for making the VLC run in Python.

Full error code:

Traceback (most recent call last):
  File "C:\OSGEO4~1\apps\Python37\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
  File "C:/OSGEO4~1/apps/qgis/./python\qgis\utils.py", line 798, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\vlc.py", line 220, in <module>
    dll, plugin_path  = find_lib()
  File "C:\OSGEO4~1\apps\Python37\lib\site-packages\vlc.py", line 176, in find_lib
    dll = ctypes.CDLL('.\\' + libname)
  File "C:\OSGEO4~1\apps\Python37\lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found

I looked through GIS SE, there were also cases when custom DLLs couldn't be imported through ctypes.CDLL(dll_path) nor with os.add_dll_directory(path).

Here is a similar case: Using ctypes for QGIS Python plugin to bind DLL. Unfortunately, there wasn't a solution.

Moreover, add_dll_directory() method is missing in the os module in QGIS. Has anyone also tried to add custom DLLs to PyQGIS script/plugin? What workaround can be found here?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.