64位Python3.9.0导入Numpy触发RuntimeError:原因及修复咨询
Python 3.9.0导入Numpy报错的原因与修复方法
先给你理清楚这个问题的来龙去脉:你遇到的那些DGEBAL、DGEHRD之类的参数错误,还有最后抛出的RuntimeError,本质上都是Windows 2004版本的系统运行时bug导致的,和Numpy本身关系不大。具体是系统里的fmod函数出现了兼容性问题,当Numpy在初始化时做完整性检查,刚好触发了这个系统bug,就引发了一系列报错。
错误产生的核心原因
这个问题是微软Windows 2004版本的一个已知bug,涉及fmod函数的异常行为。Python 3.9.0搭配对应版本的Numpy时,初始化阶段的系统环境检查会调用到受影响的fmod函数,进而触发Numpy的完整性检查失败,最终抛出那个RuntimeError,同时那些线性代数相关的参数错误提示也是这个系统bug引发的连锁反应。
可行的修复方案
这里给你几个实用的解决办法,按推荐程度排序:
- 优先升级Windows系统:微软已经在Windows 2004之后的更新补丁里修复了这个
fmod的bug,把系统更新到最新版本,就能彻底解决这个问题,后续使用Numpy也不会再遇到这类报错。 - 更换Python版本:如果暂时没法升级系统,可以换成Python 3.8.x或者3.10及以上的版本,这些版本的Python与Numpy的组合不会触发这个系统bug,能正常导入和使用Numpy。
- 临时修改Numpy初始化文件(不推荐长期用):你可以手动注释掉Numpy里触发报错的检查逻辑,算是个临时 workaround。操作步骤如下:
- 找到路径:
C:\Users\Alizadeh\AppData\Local\Programs\Python\Python39\lib\site-packages\numpy\__init__.py - 打开这个文件,找到
_win_os_check()函数,把里面的raise RuntimeError(msg.format(__file__)) from None这行代码前面加#注释掉 - 保存文件后,重新启动Python再导入Numpy试试
- 找到路径:
内容的提问来源于stack exchange,提问作者Pedi
相关产品推荐
相关产品推荐

