windows python 调用yolo dll,self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 找不到指定的模块

时间:2025-03-03 12:32:00

& darknet_video.py采用Python对darknet训练的模型进行测试,其中调用了yolo的DLL库。

(YOLO DLL 或 SO库 编译详见:

/AlexeyAB/darknet   How to use Yolo as DLL and SO libraries板块。)

将编译完成的库文件 yolo_cpp_dll.dll 或 yolo_cpp_dll_no_gpu.dll 另存再加载时会产生报错:

from ctypes import *
winGPUdll = "./yolo_cpp_dll.dll"
lib = CDLL(winGPUdll, RTLD_GLOBAL)


File "C:\Users\xx\Anaconda3\lib\ctypes\__init__.py", line 351, in __init__
    self._handle = _dlopen(self._name, mode)

OSError: [WinError 126] 找不到指定的模块。

而在darknet-master\build\darknet\x64下加载dll时,不会出现该问题。

则原因定位为:加载yolo_cpp_dll.dll 时,该dll还依赖其他动态库, 需将其依赖的动态库一并拷贝,可调用成功yolo_cpp_dll.dll。 yolo_cpp_dll.dll依赖的库为:。只有也被Python访问到,方可load yolo_cpp_dll.dll。