使用Python 3.8.0,64位
操作系统: Windows 10专业版,版本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新手,如果有任何帮助,我将不胜感激!
发布于 2019-11-24 18:58:00
来自Python 3.8发行说明:
现在更安全地解决了
上使用ctype加载的扩展模块和DLL的Windows依赖项。只有系统路径、包含DLL或PYD文件的目录以及使用add_dll_directory()添加的目录才会搜索加载时依赖项。具体地说,不再使用路径和当前工作目录,并且对这些内容的修改将不再对正常的DLL解析产生任何影响。如果您的应用程序依赖于这些机制,则应检查add_dll_directory(),如果存在,则在加载库时使用它来添加DLL目录。请注意,Windows7用户需要确保已经安装了Windows Update KB2533623 (这也是由安装程序验证的)。
不能再使用PATH
或cwd,除非您专门将这些目录添加到dll搜索路径中。
将cwd添加到搜索路径:
import os
os.add_dll_directory(os.getcwd())
大多数库都提供了一个环境变量来指定dll位置。这将用路径加载dll,这是可行的。
许多包将不得不为py38清理它们的库加载,并决定如何处理它。这是目前造成很多混乱的一个来源。
发布于 2020-08-06 14:46:03
我想指出的是,在2020年访问vlc-website是可能的,点击下载你就可以下载的32位-version--尽管现在几乎每个操作系统都是64位的。
在这种情况下,将找不到libvlc.dll
。
请确保安装64bit-version:https://get.videolan.org/vlc/3.0.11/win64/vlc-3.0.11-win64.exe
无需对代码进行任何更改。
发布于 2020-01-01 04:02:36
添加安装VLC player的目录,而不是当前目录。
在我的例子中:
import os
os.add_dll_directory(r'C:\Program Files\VideoLAN\VLC')
import vlc
https://stackoverflow.com/questions/59014318
复制相似问题