这两天安装完tensorflow后,根据需要我再次安装了seaborn及其依赖的库,结果报我numpy的库错误。
报错内容如下:
module ‘numpy’ has no attribute ‘object’.
np.object
was a deprecated alias for the builtinobject
. To avoid this error in existing code, useobject
by itself. Doing this will not modify any behavior and is safe. The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
我在csdn上找了很多类似报错的博客,基本上都说是需要降低numpy库的版本,没毛病,错误原因确实是numpy版本太高了,不兼容。
但是我在安装seaborn之前是兼容的,后来查了资料,还有一种解决方案:
换句人话就是:
这个错误是因为在NumPy版本1.20中,np.object这个别名被弃用了,而你的代码中使用了这个别名。错误信息建议你将np.object替换为object,因为np.object的功能与object完全相同,但是np.object已经在1.20版本中被移除了。
所以,你需要在代码中找到所有的np.object并将其替换为object。这样做不会改变代码的行为,但是可以确保你的代码在新版本的NumPy中仍然能够正常运行。
既然如此,这也是方法,
然后就根据报错信息,对应的位置,将np.object修改了
,然后继续运行,继续报修改的错误,按照错误位置,再继续找哪些位置需要修改
总的下来修改了三个文件的若干变量名称
在 C:\Users\87047.conda\envs\dxtf\Lib\site-packages\tensorflow\python\framework的目录下
在这个文件dtype中改了两个object,一个bool
分别是585、628行 np.object==>object
639行 的np.bool==>bool
在tensor_util文件修改
176行的np.object==>object
在~.conda\envs\dxtf\lib\site-packages\tensorflow\python\ops\numpy_ops\np_random.py
下的文件np_random.py
第110行
np_random.py中修改onp.int==>int
注意:在framework文件夹下有一个_dtype的.py文件,不要修改到这个,我第一次看的时候,差点要修改这个文件了。
然后就没有任何报错了,目前看来没有任何问题,并将原来未修改的文件做好备份。
备份还是很重要的,如果出问题,可以改回去