Python3导入dlib报错ImportError: libcusolver.so.11不存在如何解决?
dlib导入报错libcusolver.so.11缺失解决方案
问题根因
你安装的dlib版本是开启了CUDA GPU加速编译的版本,运行时依赖CUDA的libcusolver.so.11线性代数求解器库,你本地安装的CUDA 11.0组件不全,对应lib64目录下缺少该库文件,因此触发导入报错。
解决方法
- 方案1:补全CUDA 11.0组件
重新运行CUDA 11.0官方安装脚本,安装时勾选CUDA Toolkit下所有基础组件,安装完成后即可在/usr/local/cuda-11.0/lib64目录下看到libcusolver.so.11文件,之后执行sudo ldconfig更新系统动态库缓存即可。 - 方案2:绑定包含目标库的CUDA路径
如果你本地已安装其他包含libcusolver.so.11的CUDA版本(如11.1及以上版本),可以将对应CUDA的库路径加入动态库搜索环境变量:
临时生效执行:export LD_LIBRARY_PATH=/usr/local/你的目标CUDA版本目录/lib64:$LD_LIBRARY_PATH
永久生效可以将上述命令写入~/.bashrc(bash用户)或~/.zshrc(zsh用户),写入后执行source ~/.bashrc或source ~/.zshrc生效。 - 方案3:安装CPU版本dlib(无GPU需求场景)
如果你不需要GPU加速人脸识别功能,可以直接卸载当前带CUDA依赖的dlib,重新编译安装CPU版本:
编译时会自动跳过CUDA检测,不会产生CUDA相关库依赖。pip uninstall -y dlib pip install dlib --no-binary dlib - 方案4:软链接兼容(临时测试用,不推荐长期使用)
如果找不到对应版本的libcusolver.so.11,可以找本地存在的高版本同系列库做软链接兼容:
注意该方案可能出现接口不兼容的运行时异常,仅适合临时测试使用。sudo ln -s /usr/local/cuda/lib64/libcusolver.so.你的现有版本号 /usr/local/cuda-11.0/lib64/libcusolver.so.11 sudo ldconfig
内容的提问来源于stack exchange,提问作者Daanaan
相关产品推荐
相关产品推荐

