编译带CUDA和CUDNN的DLIB后导入失败求助
问题:编译支持CUDA的DLIB后导入失败
环境配置
- VS 17 2022
- CUDA 12.5
- CUDNN 8.9.5
- Python 3.8(conda虚拟环境)
执行的编译安装命令
conda create -n dlib-gpu python=3.8 cmake ipython conda activate dlib-gpu git clone https://github.com/davisking/dlib.git cd dlib mkdir build cd build cmake -G "Visual Studio 17 2022" -T host=x64 -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1 .. cmake --build . --config Release cd .. python setup.py install -G "Visual Studio 17 2022" --set USE_AVX_INSTRUCTIONS=1 --set DLIB_USE_CUDA=1 --no DLIB_GIF_SUPPORT
导入错误信息
ImportError Traceback (most recent call last) Cell In[1], line 1 ----> 1 import dlib File D:\anaconda3\envs\dlib-gpu\lib\site-packages\dlib-19.24.99-py3.8-win-amd64.egg\dlib\__init__.py:19 16 add_lib_to_dll_path('D:/cudnn-windows-x86_64-8.9.5.29_cuda12-archive/lib/x64/cudnn.lib') 17 add_lib_to_dll_path('C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.5/lib/x64/cudart.lib') ---> 19 from _dlib_pybind11 import * 20 from _dlib_pybind11 import __version__, __time_compiled__ ImportError: DLL load failed while importing _dlib_pybind11: The specified module could not be found.
当前版本
执行pip freeze | grep dlib得到:dlib==19.24.99
需求
解决导入错误,启用DLIB的CUDA支持(即dlib.DLIB_USE_CUDA返回True)
解决方案
1. 修正DLL路径配置
错误根源是__init__.py中添加的是.lib静态库路径,而非DLL动态库所在目录。Windows加载DLL需要路径在系统PATH中,或与模块同目录:
- 打开
D:\anaconda3\envs\dlib-gpu\lib\site-packages\dlib-19.24.99-py3.8-win-amd64.egg\dlib\__init__.py - 将第16、17行修改为DLL所在的
bin目录:add_lib_to_dll_path('D:/cudnn-windows-x86_64-8.9.5.29_cuda12-archive/bin') add_lib_to_dll_path('C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.5/bin') - 或直接将这两个
bin路径添加到系统环境变量PATH,然后重启终端/IPython。
2. 验证CUDA/CUDNN DLL存在性
检查以下文件是否存在:
C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.5/bin/cudart64_12.dllD:/cudnn-windows-x86_64-8.9.5.29_cuda12-archive/bin/cudnn64_8.dll
若缺失,重新下载对应版本的CUDA和CUDNN,确保路径正确。
3. 重新编译安装(可选,若上述步骤无效)
清理旧编译文件后,明确指定CUDA/CUDNN路径重新编译:
# 清理编译残留 cd dlib/build rmdir /s /q . # Windows命令,或直接手动删除build文件夹 cd .. rmdir /s /q dist build dlib.egg-info # 重新配置CMake cmake -G "Visual Studio 17 2022" -T host=x64 ^ -DDLIB_USE_CUDA=1 ^ -DUSE_AVX_INSTRUCTIONS=1 ^ -DCUDNN_INCLUDE_DIR=D:/cudnn-windows-x86_64-8.9.5.29_cuda12-archive/include ^ -DCUDNN_LIBRARY=D:/cudnn-windows-x86_64-8.9.5.29_cuda12-archive/lib/x64/cudnn.lib ^ -DCUDA_TOOLKIT_ROOT_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.5" ^ .. # 编译并安装 cmake --build . --config Release --parallel 8 python setup.py install -G "Visual Studio 17 2022" --set USE_AVX_INSTRUCTIONS=1 --set DLIB_USE_CUDA=1 --no DLIB_GIF_SUPPORT
4. 验证CUDA支持
导入dlib后执行以下代码:
import dlib print(dlib.DLIB_USE_CUDA)
输出True则说明CUDA支持已启用。
内容的提问来源于stack exchange,提问作者Đường Huỳnh Bảo Khang
相关产品推荐
相关产品推荐

