OSError:找不到[WinError 126]模块

时间:2019-02-25 16:24:36

标签: python dll ctypes mxnet

我正在尝试在python中运行MXNet port of SSD,但在运行演示时却遇到一个奇怪的错误

OSError: [WinError 126] The specified module could not be found

尤其是在尝试打开libmxnet.dll时,因此在尝试调试时发现了它。

整个错误消息是这样的:

>>>> kernel32
>>>>  C:\Users\wisdom\Anaconda3\envs\gpu-test\lib\site-packages\mxnet\libmxnet.dll
Traceback (most recent call last):
  File "demo.py", line 2, in <module>
    import tools.find_mxnet
  File "C:\Users\wisdom\Desktop\mxnet-ssd-master\tools\find_mxnet.py", line 6, in <module>
    import mxnet as mx
  File "C:\Users\wisdom\Anaconda3\envs\gpu-test\lib\site-packages\mxnet\__init__.py", line 24, in <module>
    from .context import Context, current_context, cpu, gpu, cpu_pinned
  File "C:\Users\wisdom\Anaconda3\envs\gpu-test\lib\site-packages\mxnet\context.py", line 24, in <module>
    from .base import classproperty, with_metaclass, _MXClassPropertyMetaClass
  File "C:\Users\wisdom\Anaconda3\envs\gpu-test\lib\site-packages\mxnet\base.py", line 213, in <module>
    _LIB = _load_lib()
  File "C:\Users\wisdom\Anaconda3\envs\gpu-test\lib\site-packages\mxnet\base.py", line 204, in _load_lib
    lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_LOCAL)
  File "C:\Users\wisdom\Anaconda3\envs\gpu-test\lib\ctypes\__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found

前两行带有>>>>符号的行表示我正在尝试调试的行,并检查在...\ctypes\__init__.py文件中引发错误的位置/时间,如下所示

if handle is None:
    x = (self._name)
    print('>>>>',x)
    self._handle = _dlopen(self._name, mode)

我当然检查了请求的文件libmxnet.dll的存在并在那里,但是无论何时调用它都会引发此错误!

2 个答案:

答案 0 :(得分:0)

好,终于解决了!

我知道,当不满足或找不到文件依赖项时,可能会引发此类错误。因此,要检查依赖关系,请首先转到Visual Studio提示符,然后导航到libmxnet.dll所在的文件夹并运行以下命令

dumpbin /dependents libmxnet.dll

,它将显示所需文件列表。

在我的情况下,缺少nVidia GPU Computing ToolkitCuda 9.0文件libmxnet.dll中的某些文件,而我使用的是工具箱版本10.0!

答案 1 :(得分:0)

您应该安装vcredist_x64或vcredist_x86软件包代表Visual C ++ Redistributable。