好吧,所以我正在尝试使用 pip 安装 vlc,它告诉我成功安装了 python-vlc 好吧,这就是我想要的,但是当我去运行该程序时,我试图在女巫中使用 vlc 在这里
import vlc
p = vlc.MediaPlayer("https://www.youtube.com/watch?v=jC1vtG3oyqg")
p.play()
有人告诉我这一点
Traceback (most recent call last):
File "C:\Users\Matt\Desktop\test2.py", line 1, in <module>
import vlc
File "C:\Python27\lib\site-packages\vlc.py", line 173, in <module>
dll, plugin_path = find_lib()
File "C:\Python27\lib\site-packages\vlc.py", line 150, in find_lib
dll = ctypes.CDLL('libvlc.dll')
File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
我不确定我应该做什么,因为 vlc 程序中有错误(我认为),如果你能帮助我并让这个为我工作,那就太棒了,非常感谢!!
您的问题是
libvlc.dll
不在 PATH 中。有 2 种方法可以纠正这个问题。
set PATH=%PATH%;<path to your dll folder>
如本文第二个答案中所述:将目录添加到 Windows 中的 PATH 环境变量
此解决方案使变量在每次重新启动计算机时都保留在路径中,但您需要 root 权限。和以前一样,您需要将 dll 文件夹的路径放入 Path 变量中,如本网站所述。 (这取决于您的系统版本):https://www.computerhope.com/issues/ch000549.htm
人们通常会下载 32 位 vlc 版本。如果您安装了 64 位版本的 python,这可能会导致一些问题。 (
Windows Error [193]
)。要解决这个问题,您只需重新安装 64 位 vlc 版本即可。
我也有类似的问题。这是我的解决方案: 首先我检查了文件中的代码
__init__.py
。打印一些变量,例如 self._name
和 mode
以确保值正确。我查找了函数_dlopen
,即来自_ctypes
的LoadLibrary,发现模式参数是可选的。所以我尝试在不破坏整个文件结构的情况下修改文件。这是代码:
原代码是:
if handle is None:
self._handle = _dlopen(self._name, mode)
else:
self._handle = handle
我修改了代码如下:
if handle is None:
if 'libvlc' not in self._name:
self._handle = _dlopen(self._name, mode)
else: # libvlc.dll will hit
self._handle = _dlopen(self._name)
else:
self._handle = handle
这对我有用。希望这个解决方案可以帮助有同样问题的人。
我将我的 vlc 播放器从 32 位更改为 64 位并且它有效。只需下载 64 位版本的 vlc 播放器并安装即可。写的
import vlc
会起作用的
通过 pip 安装不会安装 vlc 本身,只会安装 libvlc 绑定的 python 包装器。要使用它们,您需要安装有效的 VLC。请从 www.videolan.org 获取 VLC
回溯(最近一次调用最后一次):
文件“/var/www/html/py/app.py”,第 7 行,位于
视频=pafy.new(url)
^^^^^^^^^^^^^^
文件“/usr/local/lib/python3.11/site-packages/pafy/pafy.py”,第 124 行,新建
返回Pafy(url,基本,gdata,大小,回调,ydl_opts = ydl_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^
文件“/usr/local/lib/python3.11/site-packages/pafy/backend_youtube_dl.py”,第 31 行,在 init 中
超级(YtdlPafy,自我)。init(*args,**kwargs)
文件“/usr/local/lib/python3.11/site-packages/pafy/backend_shared.py”,第 62 行,在 init 中
self.videoid = extract_video_id(video_url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
文件“/usr/local/lib/python3.11/site-packages/pafy/backend_shared.py”,第 51 行,extract_video_id
引发 ValueError(err % url)
ValueError:需要 11 个字符的视频 ID 或视频的 URL。得到//1.mp4