OSError: [WinError 126] module could not be found
OSError: [WinError 126] module could not be found
我正在尝试 运行 MXNet port of SSD 在 python 中,但是当我 运行 演示说
时我遇到了一个奇怪的错误
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
前两行带有 >>>> 符号的行指示我尝试调试和检查的行 where/when 错误在 ...\ctypes\__init__.py
文件中触发,如下所示
if handle is None:
x = (self._name)
print('>>>>',x)
self._handle = _dlopen(self._name, mode)
我当然检查了请求文件 libmxnet.dll
的存在,它就在那里,但是无论何时调用它都会抛出这个错误!
好的,终于解决了!
我知道当不满足或找不到文件依赖项时可能会抛出此类错误。因此,要检查依赖项,您首先进入 Visual Studio 提示符,然后导航到 libmxnet.dll
存在的文件夹和 运行 以下命令
dumpbin /dependents libmxnet.dll
它会显示所需文件的列表。
在我的案例中缺少的是一些 nVidia GPU Computing Toolkit
文件 Cuda 9.0
,因为 libmxnet.dll
要求它们,而我使用的是工具包版本 10.0!
您应该安装 vcredist_x64 或 vcredist_x86 软件包代表 Visual C++ Redistributable。
我正在尝试 运行 MXNet port of SSD 在 python 中,但是当我 运行 演示说
时我遇到了一个奇怪的错误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
前两行带有 >>>> 符号的行指示我尝试调试和检查的行 where/when 错误在 ...\ctypes\__init__.py
文件中触发,如下所示
if handle is None:
x = (self._name)
print('>>>>',x)
self._handle = _dlopen(self._name, mode)
我当然检查了请求文件 libmxnet.dll
的存在,它就在那里,但是无论何时调用它都会抛出这个错误!
好的,终于解决了!
我知道当不满足或找不到文件依赖项时可能会抛出此类错误。因此,要检查依赖项,您首先进入 Visual Studio 提示符,然后导航到 libmxnet.dll
存在的文件夹和 运行 以下命令
dumpbin /dependents libmxnet.dll
它会显示所需文件的列表。
在我的案例中缺少的是一些 nVidia GPU Computing Toolkit
文件 Cuda 9.0
,因为 libmxnet.dll
要求它们,而我使用的是工具包版本 10.0!
您应该安装 vcredist_x64 或 vcredist_x86 软件包代表 Visual C++ Redistributable。