Windows10下IntelliJ中导入mxnet报错:OSError: [WinError 126]
我之前在Windows环境里也碰到过一模一样的问题,WinError 126本质上是系统找不到MXNet依赖的底层动态链接库(比如OpenBLAS、MKL或者CUDA相关的库),哪怕MXNet本身已经在你的env/lib目录里了也没用。给你几个亲测有效的解决办法:
检查Python与MXNet版本的兼容性
首先确认你安装的MXNet版本和Python版本、系统位数(32/64位)完全匹配。比如Python 3.8需要搭配适配的MXNet版本(如1.8.0),64位系统必须安装64位的MXNet包。
你可以在终端执行以下命令查看版本:python --version pip show mxnet若版本不匹配,先卸载重装:
pip uninstall mxnet pip install mxnet==1.8.0 # 替换为适配你Python的版本安装缺失的VC++运行库
Windows下绝大多数Python原生扩展包都依赖微软的Visual C++ Redistributable,MXNet也不例外。下载对应版本的VC++运行库(推荐2017或2019版的x64版本),安装完成后重启IntelliJ再尝试导入。排查CUDA依赖(GPU版MXNet专属)
如果你安装的是mxnet-cuXX系列包(如mxnet-cu110),必须确保系统已安装对应版本的CUDA Toolkit和cuDNN,且它们的路径已添加到系统环境变量中:- CUDA的
bin目录需加入系统PATH; - cuDNN的文件需放置到CUDA对应的文件夹内。
若不需要GPU加速,直接切换到CPU版MXNet即可:
pip install mxnet- CUDA的
确保IntelliJ正确关联虚拟环境
有时候IntelliJ并未正确识别你安装了MXNet的虚拟环境,可按以下步骤检查:- 打开
File -> Project Structure -> Project Settings -> Project,确认Project SDK是你目标虚拟环境中的Python解释器; - 进入
File -> Settings -> Project: 你的项目名 -> Python Interpreter,检查列表中是否存在mxnet包。若没有,点击右上角+号搜索安装,或直接选择已配置的虚拟环境解释器。
- 打开
手动补充依赖动态链接库
若以上方法均无效,可尝试手动复制依赖库到MXNet目录:
找到MXNet的安装目录(一般在env/lib/site-packages/mxnet),将系统中的libopenblas.dll或MKL相关dll文件复制到该目录下。你可以从MXNet的官方安装包或可信渠道获取对应版本的依赖库。
按照上面的步骤一步步排查,应该能解决这个问题。我当时是因为缺失VC++运行库,安装后就正常导入了。
内容的提问来源于stack exchange,提问作者Ali Hassan

