FileNotFoundError:找不到模块“libvlc.dll”

Posted

技术标签:

【中文标题】FileNotFoundError:找不到模块“libvlc.dll”【英文标题】:FileNotFoundError: Could not find module 'libvlc.dll' 【发布时间】:2020-03-19 17:03:50 【问题描述】:

使用 Python 3.8.0,64 位

操作系统: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 新手,非常感谢任何帮助!

【问题讨论】:

您的 libvlc.dll 和 plugins 文件夹在哪里?请提供完整路径 这可能不是很多人想要的答案,但这个脚本的最初目的是从 YouTube 下载视频。我当时无法解决这个错误,最终使用youtube-dl 下载视频。感谢大家的帮助! @alexacallmebaka,你试过WinDLLwinmode 标志吗? This 回答帮助我解决了与您类似的问题。 ***.com/questions/58631512/pywin32-and-python-3-8-0 【参考方案1】:

来自 Python 3.8 发行说明:

现在可以更安全地解析 Windows 上使用 ctypes 加载的扩展模块和 DLL 的 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 清理它们的库加载并决定如何处理这个问题。它目前是很多混乱的根源。

【讨论】:

这不起作用。我将您指定的代码行添加到我的脚本中,但它仍然给我同样的错误。我还尝试在交互模式下运行这些代码行,并将它们从我的脚本中取出,同样的错误。 所以你用add_dll_directory添加了ddl所在的目录到你的搜索路径?你是否也阅读并理解了 py38 的补丁说明?如果你不想处理这个,你可以把 dll 扔到 system32 中。 此评论极大地帮助隔离了将 python 代码从 2.7 移植到 3.8 的错误。不幸的是,该用户还安装了多个版本的 GCC,并且 python 3.8 引入了不同的 GCC 版本的 DLL,而 python 2.7 引入了不同的 DLL。因此代码在 py2.7 中运行良好,但在 py3.8 中中断。暂时解决了我们的问题,只需将所需的 GCC DLL 放入同一目录,然后 ctypes 就可以工作了。关于如何将路径插入到列表末尾以上窗口的 dll 目录搜索列表中的任何想法?【参考方案2】:

我想指出,2020 年有可能访问vlc-website,通过点击下载,您将下载 VLC 的 32 位-版本 - 尽管现在几乎每个操作系统都是 64 位.

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

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

无需更改代码。

【讨论】:

【参考方案3】:

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

就我而言:

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

import vlc

【讨论】:

【参考方案4】:

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

【讨论】:

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

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

【讨论】:

【参考方案6】:

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

Mac 操作系统:https://get.videolan.org/vlc/3.0.9.2/macosx/vlc-3.0.9.2.dmg 赢32:https://get.videolan.org/vlc/3.0.9.2/win32/vlc-3.0.9.2-win32.exe 赢64:https://get.videolan.org/vlc/3.0.9.2/win64/vlc-3.0.9.2-win64.exe

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

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

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

【讨论】:

【参考方案7】:

就我而言,我做了以下事情:

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

【讨论】:

【参考方案8】:

这将起作用:

import subprocess as s
s.call(['C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe', 'voz.mp3', 'vlc://quit'])

【讨论】:

【参考方案9】:

我遇到了同样的问题。 解决方案:下载64位vlc。 https://download.cnet.com/VLC-Media-Player-64-bit/3000-13632_4-75761094.html

【讨论】:

【参考方案10】:

您只需要在您的计算机上下载并安装 vlc。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

以上是关于FileNotFoundError:找不到模块“libvlc.dll”的主要内容,如果未能解决你的问题,请参考以下文章

FileNotFoundError: [WinError 3] 系统找不到指定的路径:

PythonPDF: FileNotFoundError: [WinError 2] 系统找不到指定的文件

无法创建文件夹 - FileNotFoundError: [WinError 2] 系统找不到文件

python FileNotFoundError: [WinError 2] 系统找不到指定的文件。

Python 使用pyinstaller打包程序失败提示找不到c盘的某个dll文件解决方法,FileNotFoundError: [WinError 2] 系统找不到指定的文件

Python 使用pyinstaller打包程序失败提示找不到c盘的某个dll文件解决方法,FileNotFoundError: [WinError 2] 系统找不到指定的文件