【不降级的解决方案】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的文档后发现,其实从

这个错误是由于缺少名为'decorator'的模块导致的。根据引用\[1\],这个错误通常发生在使用'timeout_decorator'模块时。根据引用\[2\],这个问题通常发生在跟随教程或代码包练习时,因为这个模块常用。根据引用\[3\],从numpy的1.18版本开始,numpy.testing.decorators模块已经被淘汰,取而代之的是numpy.testing模块。因此,解决这个问题的方法是将导入模块的代码从'timeout_decorator'改为'numpy.testing'。这样就可以解决ModuleNotFoundError: No module named 'decorator'的问题。 #### 引用[.reference_title] - *1* [解决Traceback (most recent call last): File “train.py“, line 5, in <module> import timeout_deco](https://blog.csdn.net/qq_45378106/article/details/129909952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【降级解决方案ModuleNotFoundError: No module namednumpy.testing.decorators](https://blog.csdn.net/link_in_csdn/article/details/124815024)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值