Python OSError:[WinError 126]找不到模块

Python OSError:[WinError 126]找不到模块,python,dll,ctypes,mxnet,Python,Dll,Ctypes,Mxnet,我试图在python中运行,但在运行演示时遇到了一个奇怪的错误 OSError: [WinError 126] The specified module could not be found 特别是在尝试打开libmxnet.dll时,我在尝试调试它时发现了这一点 整个错误消息如下所示: >>>> kernel32 >>>> C:\Users\wisdom\Anaconda3\envs\gpu-test\lib\site-packages\mx

我试图在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
当然,我检查了请求的文件
libmxnet.dll是否存在,它是否存在,但无论何时调用它,它都会抛出这个错误

好的,终于解决了

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

dumpbin/dependents libmxnet.dll

它将向您显示所需文件的列表

我缺少的是一些
nVidia GPU计算工具包
文件
Cuda 9.0
,因为
libmxnet.dll
要求它们,而我使用的是工具包版本10.0

好的,终于解决了

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

dumpbin/dependents libmxnet.dll

它将向您显示所需文件的列表


我缺少的是一些
nVidia GPU计算工具包
文件
Cuda 9.0
,因为
libmxnet.dll
要求它们,而我使用的是工具包版本10.0

> P>安装VisualC++ C++可重新分配的VCRESTORDX64或VCRESTORYXX86A包。

< P>您应该安装VCRESTIOXX64或VCRESTORYXX6包看台,用于VisualC++重新分发。看看这个例子,我忘了提到我试图用“windell(slef.\u name,use\u last\u error=True)”来替换代码,但是它却陷入了递归抛出“递归错误:调用Python对象时超过了最大递归深度”!真奇怪。。。你可以发布你的完整代码吗?或者你在哪里定义了自己?你的名字是什么?感谢可以找到代码,错误通常在第351行抛出。如果我尝试将
\u dlopen()
函数更改为
windell()
——我认为我不应该这样做——它将陷入递归!我也试着打开python解释器并运行
windell(“…\\libmxnet.dll”)
函数,但仍然找不到相同的错误“模块”“别担心……我已经打开了一个;)看看这个,也许能帮你。看看这个例子,我忘了提到我试图用“windell(slef.\u name,use\u last\u error=True)”来替换代码,但是它却陷入了递归抛出“递归错误:调用Python对象时超过了最大递归深度”!真奇怪。。。你可以发布你的完整代码吗?或者你在哪里定义了自己?你的名字是什么?感谢可以找到代码,错误通常在第351行抛出。如果我尝试将
\u dlopen()
函数更改为
windell()
——我认为我不应该这样做——它将陷入递归!我也试着打开python解释器并运行
windell(“…\\libmxnet.dll”)
函数,但仍然找不到相同的错误“模块”“别担心……我已经打开了一个;)visual studio提示符是什么和在哪里?visual studio提示符是什么和在哪里?
if handle is None:
    x = (self._name)
    print('>>>>',x)
    self._handle = _dlopen(self._name, mode)