使用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的新手,将不胜感激!
答案 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,
然后我将plugins
,libvlc.dll
和libvlccore.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)
来源:https://www.geeksforgeeks.org/vlc-module-in-python-an-introduction/
答案 5 :(得分:0)
就我而言,我做了以下工作:
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')
此后代码应该可以完美运行。