1. 运行项目时报错
File "..\factory\user_test.py", line 5, in <module> import vlc File "C:\Users\xxx\.conda\envs\mp-tool-kits\lib\site-packages\vlc.py", line 220, in <module> dll, plugin_path = find_lib() File "C:\Users\xxx\.conda\envs\mp-tool-kits\lib\site-packages\vlc.py", line 180, in find_lib dll = ctypes.CDLL('.\\' + libname) File "C:\Users\xxx\.conda\envs\mp-tool-kits\lib\ctypes\__init__.py", line 348, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 找不到指定的模块。
发现是导入vlc有问题
2. 先说结论
https://pypi.org/project/python-vlc/
vlc的说明中有一句话:Note that it relies on an already present install of VLC.
于是先安装VLC Media Player,再运行项目,就不报错了。
3. 问题解决过程
刚刚已经说了结论,那么是如何发现结论的呢?
3.1. 测试引入vlc
首先运行conda list和pip list命令,输出的结果中都有python-vlc及版本号,说明环境中已有vlc;conda list和pip list命令的区别,可以参考conda list 和 pip list 命令的区别
运行import vlc,结果如下:
>>> import vlc Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\xxx\.conda\envs\mp-tool-kits\lib\site-packages\vlc.py", line 220, in <module> dll, plugin_path = find_lib() File "C:\Users\xxx\.conda\envs\mp-tool-kits\lib\site-packages\vlc.py", line 180, in find_lib dll = ctypes.CDLL('.\\' + libname) File "C:\Users\xxx\.conda\envs\mp-tool-kits\lib\ctypes\__init__.py", line 348, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 找不到指定的模块。
- 说明vlc的引入存在问题
3.2. 去找vlc的安装路径
- 找到vlc的文件夹,如下
- 发现文件夹中并没有任何的py文件,于是怀疑是未安装成功,进行卸载重装;
3.3. 卸载重装vlc
- 使用
pip uninstall python-vlc
命令卸载vlc; - 使用
pip install python-vlc
命令安装vlc; - 重新找到vlc的文件夹,依然没有任何py文件;
- 搜索“vlc”,结果发现vlc.py文件在Lib->site-packages文件夹下;
3.4. 去vlc官网寻找答案
- google搜索pypi vlc,进入仓库 https://pypi.org/project/python-vlc/
- 发现一行小字:Note that it relies on an already present install of VLC.
3.5. 安装VLC Media Player
- 安装VLC Media Player;
- 重新运行项目,无报错,问题解决;