之前拿到一个比较旧的项目文件,其中有一行代码:
import dlib
运行之后发生了报错:
Traceback (most recent call last):
File "PATH", line 14, in <module>
import dlib
File "F:\Anaconda 3\envs\python3_11\Lib\site-packages\dlib\__init__.py", line 19, in <module>
from _dlib_pybind11 import *
ImportError: DLL load failed while importing _dlib_pybind11: 找不到指定的模块。
我给这个项目文件配置了python版本3.11的conda虚拟环境,而在给这个虚拟环境安装dlib库时是直接使用了pip命令:
pip install dlib
结果就如文章开头所示,在尝试运行项目时发生了报错。之后尝试了各种方法,包括卸载重装dlib、安装指定版本的dlib库、去dlib官网下载老版的whl文件,均未解决问题。
又尝试用cmake编译从dlib官网下载的最新版本dlib源文件,尝试解决一些教程所说的C++编译问题,但是由于我并不是很熟悉这方面的操作所以也没有成功。
考虑到项目文件可能使用的python版本不同,可能是这方面的原因,于是我新创建了一个python3.8的虚拟环境,在这个环境下运行,但是这样又引出了其他的一些奇奇怪怪的bug,所以也失败了。
后来发现是安装时的whl文件与python版本没对应上导致的问题。这样思路就比较清晰了,安装对应python版本的whl安装包即可(在文末参考链接中下载)。图中文件名中的cp311即表示对应python3.11版本。
在whl安装包目录下的地址栏直接输入cmd打开命令提示符。然后使用指令
pip install dlib-19.24.1-cp311-cp311-win_amd64.whl
即可完成离线安装。如果要在虚拟环境中安装的话,还需先用conda命令激活相应虚拟环境后再进行安装。至此,运行项目,报错问题解决。
参考: