之前发现代码报错,出现这个提示,第一反应是在百度和csdn上找,没想到找了一整圈,都在建议我用降级numpy的方法来解决
pip install numpy==1.17.0
注:当前代码因为包的版本出现问题时,除非在实现逻辑上新包引入了恶性bug(且包的维护者停止了更新或者无力解决 ),否则极其不推荐降级包;大多数因为升级了包的版本而让原先代码报错的原因,都是因为新的包里面对调用方法、命名空间这类顶层进行了修改,我们要做的事情是
- 找到对应包的官方API或者文档说明,阅读更新记录,发现问题根源
- 在对应新版本的API或者文档中,找到与原有代码出错处相同或相似的目录,看看新的包是否更新了语法或者调用方式
- 根据新的包的标准,重写自己的程序代码
根据这个报错的情景不同,可以将解决方法细分为以下两类
- 自行主动import这个包时出错
出现这个问题的情况90%以上不是自己写的代码,而是跟随某个教程/代码包练习的时候出现这个问题,原因很简单:numpy.testing.decorators这个模块很不常用,如果真的是自己主动要用这个模块的,其代码能力应该不至于对着这个问题犯难,也不至于连包更新了都不知道……
还是以开头这张图里面的代码为例,开头的报错:
图中直接指出了问题代码所在:
from numpy.testing.decorators import slow
想要从numpy.testing.decorators这个模块里面引入与slow相关的命名空间,但是发现numpy.testing.decorators这个模块本身就不存在
阅读numpy的文档后发现,其实从