FileNotFoundError:找不到模块'libvlc.dll'

时间:2019-11-24 03:13:17

标签: python python-3.x windows vlc libvlc

使用Python 3.8.0(64位)

OS:Windows 10 Pro,版本10.0.15063 Build 15063,64位

VLC,3.0.8 Vetinari,64位

已通过PIP安装了Python VLC绑定

VLC的路径和libvlc.dll的直接路径都在我的“ PYTHONPATH”和“ PATH”环境变量中。

我正在通过Windows命令提示符运行脚本。

我要运行的脚本只有一行:

import vlc

这是命令提示符告诉我的内容:

Traceback (most recent call last):
  File "001.py", line 1, in <module>
    import vlc
  File "C:\Program Files\Python38\lib\site-packages\vlc.py", line 207, in <module>
    dll, plugin_path  = find_lib()
  File "C:\Program Files\Python38\lib\site-packages\vlc.py", line 163, in find_lib
    dll = ctypes.CDLL(libname)
  File "C:\Program Files\Python38\lib\ctypes\__init__.py", line 369, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'libvlc.dll'. Try using the full path with constructor syntax.

我是Python的新手,将不胜感激!

7 个答案:

答案 0 :(得分:1)

我想指出,有可能在2020年访问vlc-website,并且通过单击下载,您将下载VLC的 32bit 版本-即使当今几乎每个OS是64位。

在这种情况下,将找不到libvlc.dll

请确保安装 64位版本:https://get.videolan.org/vlc/3.0.11/win64/vlc-3.0.11-win64.exe

无需更改代码。

答案 1 :(得分:0)

摘自Python 3.8发行说明:

  现在,可以更安全地解决Windows上扩展模块的DLL依赖关系以及随ctypes加载的DLL的依赖关系。仅搜索系统路径,包含DLL或PYD文件的目录以及使用add_dll_directory()添加的目录以查找加载时间依赖性。具体来说,将不再使用PATH和当前工作目录,并且对它们的修改将不再对正常的DLL解析产生任何影响。如果您的应用程序依赖于这些机制,则应检查add_dll_directory(),如果存在,请在加载库时使用它来添加DLL目录。请注意,Windows 7用户将需要确保已安装Windows Update KB2533623(安装程序也已对此进行了验证)。

PATH或cwd不能再使用,除非您将这些目录专门添加到dll搜索路径中。

要将cwd添加到搜索路径:

import os
os.add_dll_directory(os.getcwd())

大多数库提供一个环境变量来指定dll位置。那样就可以使用路径加载dll了。

许多软件包都必须清理其对py38的库加载并决定如何处理。当前,它引起了很多混乱。

答案 2 :(得分:0)

如果我的python-vlc版本是3.0.7110,我会下载VLC 3.0.7, 然后我将pluginslibvlc.dlllibvlccore.dll复制到C:\Windows\System32, 请注意,如果您的python是64位的,则还需要vlc 64位

答案 3 :(得分:0)

添加当前安装VLC播放器的目录,而不是当前目录。

就我而言:

import os
os.add_dll_directory(r'C:\Program Files\VideoLAN\VLC')

import vlc

答案 4 :(得分:0)

  1. 如果没有添加路径,则问题是 libvlc.dll 不在 PATH(系统变量)中。只需将文件libvlc.dll路径添加到系统变量中即可,该文件可以在安装的vlc文件夹中找到
  2. VLC 版本错误,通常人们下载 32 位 vlc 的版本。如果我们安装了 64 位版本的 python,这可能会导致一些麻烦。要解决这个问题,我们只需要重新安装 64 位 vlc 的版本。
  3. 在 vlc 模块之前导入 os 模块并使用 os.add_dll_directory(r'C:\Program Files\VideoLAN\VLC') 注册 libvlc.dll。

来源:https://www.geeksforgeeks.org/vlc-module-in-python-an-introduction/

答案 5 :(得分:0)

就我而言,我做了以下工作:

  • 已下载 VLC 64 位
  • 将 libvlc.dll 和 libvlccore.dll 复制到 Windows\System32。
  • 使用导入操作系统,os.add_dll_directory(r'C:\Program Files\VideoLAN\VLC')

答案 6 :(得分:0)

这是其他答案的组合。根据您的操作系统下载以下内容:

通过 dmg/exe 完成设置过程。 然后在运行您的代码之前执行此操作:

import os
os.add_dll_directory(r'C:\Program Files\VideoLAN\VLC')

此后代码应该可以完美运行。