【不降级的解决方案】ModuleNotFoundError: No module named ‘numpy.testing.decorators‘

本文详细阐述了解决因numpy版本更新导致的包导入错误,提倡通过查阅官方文档和升级相关依赖包,而非盲目降级numpy。作者提供了两种常见情况的解决步骤,包括主动import错误和被其他包自动import的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前发现代码报错,出现这个提示,第一反应是在百度和csdn上找,没想到找了一整圈,都在建议我用降级numpy的方法来解决

pip install numpy==1.17.0

注:当前代码因为包的版本出现问题时,除非在实现逻辑上新包引入了恶性bug(且包的维护者停止了更新或者无力解决 ),否则极其不推荐降级包;大多数因为升级了包的版本而让原先代码报错的原因,都是因为新的包里面对调用方法、命名空间这类顶层进行了修改,我们要做的事情是

  1. 找到对应包的官方API或者文档说明,阅读更新记录,发现问题根源
  2. 在对应新版本的API或者文档中,找到与原有代码出错处相同或相似的目录,看看新的包是否更新了语法或者调用方式
  3. 根据新的包的标准,重写自己的程序代码

根据这个报错的情景不同,可以将解决方法细分为以下两类

  • 自行主动import这个包时出错

出现这个问题的情况90%以上不是自己写的代码,而是跟随某个教程/代码包练习的时候出现这个问题,原因很简单:numpy.testing.decorators这个模块很不常用,如果真的是自己主动要用这个模块的,其代码能力应该不至于对着这个问题犯难,也不至于连包更新了都不知道……

还是以开头这张图里面的代码为例,开头的报错:
 

 图中直接指出了问题代码所在:

from numpy.testing.decorators import slow

 想要从numpy.testing.decorators这个模块里面引入与slow相关的命名空间,但是发现numpy.testing.decorators这个模块本身就不存在

阅读numpy的文档后发现,其实从

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值