You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译带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.dll
  • D:/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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 06:17:05