我正在尝试运行 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
其中带有 >>>> 符号的前两行指示我尝试调试并检查在 ...\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计算工具包
文件Cuda 9.0
,因为libmxnet.dll
要求它们,我是而是使用工具包版本 10.0!
关于python - 操作系统错误: [WinError 126] module could not be found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54870595/