报错1
importerror: Something is wrong with the numpy installation. While importing we detected an older version of numpy in [‘D:\Anaconda3\envs\tensorflow\lib\site-packages\numpy’]. One method of fixing this is to repeatedly uninstall numpy until none is found, then reinstall this version.
如下图所示:
这是import caffe报错,在import tensorflow也报错。不过吧tensorflow用conda安装,并创建新的python3.6的环境,这个就不会报错,原因在于,不再调用非虚拟环境下的python的依赖库,而是调用新建的tf虚拟环境下的python3.6的库,就不会存在版本冲突的问题,但是caffe的环境搭建,并不是在虚拟环境下的,哪怕你把caffe装canda虚拟环境下,以后使用其他库,调用本地非虚拟环境还是要面临这样的问题,那么我们还是要解决这个问题。
下面分析下原因吧:
出现这个报错说明在你安装新的软件,或者更新numpy或者干什么的时候,旧的numpy没有卸载掉,两版numpy导致出现冲突。一般这种情况下还会伴随有另一个报错:
进到信息中指定的.libs文件夹中会发现,确实是多了一个DLL文件,注意,这两个文件有一个你有权限删除,但是另一个你不能删除,因为python正在占用。
解决方案
我是在anaconda里卸载安装的,最后提示了Skipping numpy as it is not installed.才继续下载安装的
图1
图2
图3
图4
操作说明:
- 先卸载numpy: pip uninstall numpy (图1,卸掉了numpy1.18.5版本,也就是新版本的)
- 再卸载numpy: pip uninstall numpy (图2,卸掉了numpy1.15.2版本,也就是旧版本的)
- 验证numpy是否全部卸载完毕: pip uninstall numpy (图3,提示了Skipping numpy as it is not installed.也就说明numpy新旧版本全部卸载完了,此时完全已经没有numpy了为止,这步验证环节还是很重要的)
- 下载numpy:pip install numpy (图4,说明成功了)
总结:
至少连续操作pip uninstall numpy三次。第一次,卸载新版本,第二次,卸载旧版本,第三次验证是否全部卸载完numpy。最后才能安装
报错2:
要用到TensorFlow,但是下载完成后后发现import tensorflow总是出现FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / ‘(1,)type’._np_quint8 = np.dtype([(“quint8”, np.uint8, 1)])的错误,如图
解决方法:
方法 1. 网上查阅资料以后,发现是numpy版本过高的问题,我的python版本为3.7.4,安装的tensorflow版本为1.13.1,安装tensorflow时也安装了numpy,但是numpy版本为1.18.5,卸载numpy:pip uninstall numpy,安装低版本即可:pip install numpy==1.16.0
方法2.将红色框框改为橙色框框内容,就可以解决
我用的是方法2,因为存在不知道哪个版本更适合当前的tensorflow版本
如果你是用sudo python3安装的tensorflow,报错如下:
那么你需要到
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py
切换到/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/目录下打开终端,输入命令:
sudo chmod 777 dtype.py # 给dtype.py赋予读写权限
然后打开dtype.py修改对应的部分