import mxnet时出现OSError: [WinError 126] 找不到指定的模块。

之前导入mxnet的时候挺正常的,但是昨天将matplotlib用conda升级后,再运行代码就报以下错误:
Traceback (most recent call last):
File “D:/PycharmProjects/LinearRegression/demo/pikachu_detection.py”, line 1, in
from mxnet import image
File “D:\Anaconda3\lib\site-packages\mxnet_init_.py”, line 25, in
from . import engine
File “D:\Anaconda3\lib\site-packages\mxnet\engine.py”, line 23, in
from .base import _LIB, check_call
File “D:\Anaconda3\lib\site-packages\mxnet\base.py”, line 113, in
_LIB = _load_lib()
File “D:\Anaconda3\lib\site-packages\mxnet\base.py”, line 105, in load_lib
lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_LOCAL)
File "D:\Anaconda3\lib\ctypes_init
.py", line 348, in init
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。

第一次遇到这种问题,不知道该如何解决,网上说的什么dll我也不是很懂,求各位指教。

用的是Win10系统,Python3.6,conda3,pycharm2018

libmxnet.dll找不到必需的依赖了,用 Dependency Walker看看缺少哪些dll,
把缺少的复制到系统的path下或放到 libmxnet的同目录

1赞

感谢你的回复!很有用!

我也是一样的问题,用的jupyter,但是用Dependency Walker打开libmxnet.dll后发现很多动态库都是缺失的。


我安装的是mxnet-cu100,不知道是不是这个还没完善好。。。
请大神指教。

你好 解决了嘛 我也也是同样的问题 mxnet-cu100

有没有更详细的啊,还是解决不了

你这些都无所谓.这些确实找不到的.你往下翻.

这个工具有些古老了,https://github.com/lucasg/Dependencies用这个

请问已经解决了吗? 我import mxnet 时就会报这个错?求指教

我也是同样的问题,解决了吗

解决方法:
使用dependency walker,查找libmxnet.dll的引用dll,发现找不到CUBLAS64_90.DLL等文件,这些都是cuda的dll。

原来是安装了其他软件,导致系统环境变量path被删除了,cuda的path也被删除了,解决方法:在path中重新添加cuda的引用目录,百度“cuda添加path”

想问下,我安装的mxne-cu100,cuda10.1
我也出现了这个问题,但是我看了下我的变量貌似都在啊。而且我用dependency walker查看了,确实是少了CUBLAS64_100.DLL文件,但是我去哪找啊?


我的问题解决了。是因为我把解压出来的cuddn文件里的bin,include,lib,三个文件分别复制到对应的文件了,人家是说: 把这三个 文件夹 里面的 文件 分别复制过去。我是直接替换了。。。。

3赞

我遇到了和楼主一模一样的问题,也是import mxnet时出现了OSError:[WinError 126]的错误,连图片都是一模一样的,在此我说一下我的问题和解决的方法,仅供大家参考。
用dependency walker软件运行CUBLAS64_100.DLL文件,得到分析图
和楼上那位兄弟的分析图一样,
你看CUBLAS64_100.DLL是缺失的。上哪找呢?
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1(也可能不是10.1,这不重要)\bin,找一找,我的是这个


发现了吧,你缺少的是CUBLAS64_100,而我的是CUBLAS64_101,这是为什么呢?因为我的cuda下载的是cuda10.1,而mxnet要求的是10.0,就是这0.1的差别导致缺少模块。
最后我是怎么解决的呢?
首先你要保证你的环境变量什么的是对的,然后,我卸载了cuda10.1,下载了cuda8.0,mxnet10.1也卸载了,重新下载了mxnet8.0,你要保证这连个版本匹配,这样的话,你就会找到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin\CUBLAS64_80,而你的mxnet8.0所需的正是这个文件,再次import mxnet as mx , 就不会报错了
希望这个回答对大家有帮助。
PS,出现这个错误基本上不是环境变量路径不对,就是文件拷贝位置不对,要么就是版本不对,反正结果就是找不到DLL文件,大家不要心急,从头慢慢捋一捋总会找出问题的

2赞

点赞。希望后面遇到问题的小伙伴可以参考下

解决了,终于看到 import mxnet没报错了
大家一定要搞清楚下面三个问题:1.mxnet cuda的版本 2.环境变量路径 3.文件拷贝位置

测试了下,是可以的,这种方法比较方便。

!!!!!!!!!!
我也遇到了这个问题,不过呢出问题的原因和大家不一样。我是重装环境的时候,按照Mxnet官网的手册进行的,安装的内容有:

  1. Anoconda
  2. CUDA
  3. CUDNN
  4. VS
  5. MKL
  6. python3.7
    安装的时候都注意了版本匹配。
    但还是出现了这个问题。
    ############重点###############
    出现问题的原因是,我只安装了Mxnet-cu101mkl和gluonbook,但是没安装gluon。所以就出错了。
    于是运行pip install gluon。完成!
    运行成功。

这个问题我今天也出现了,最后是我的mxnet版本和conda版本不匹配,所以我推测这个问题就是mxnet版本的问题吧,查一下有没有版本对应的关系或者安装一下更新或更老的mxnet版本试一试?

也就是说10.0不能用?