python - 操作系统错误: [WinError 126] module could not be found

标签 python dll ctypes mxnet

我正在尝试运行 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/

相关文章:

c++ - InternetCrackUrl 没有正确返回 lpszHostName

c++ - 我如何分析纯dll?

python - 如何在Python中添加/减去两个ctypes.c_double

python - 比较数据框 python 的两列后找到额外的值

python3.5 --version 命令未找到 CentOS 7

python - 如何在 Python 中定义数据框?

python bokeh动态更新分类x_range

c++ - 注入(inject)的 DLL 中的异常是否会导致整个程序崩溃?

将linux的.so文件转换为windows的.dll文件

python - 我怎样才能得到方法作为 python ctypes 的回调?