Tensorflow默认安装的numpy版本与其他第三方库安装的numpy导致的错误:ImportError: numpy.core.multiarray failed to import问题解决

问题发生

错误的发生是在我安装了Tensorflow2.0.0版本后,在Anaconda创建的虚拟环境中使用conda install pandas安装了pandas,在运行程序时,发生了如下的错误:

ImportError: DLL load failed: 找不到指定的模块。
ImportError: numpy.core.multiarray failed to import

查阅了许多博客,并研究了很久发现,错误发生的原因是:在用conda安装Tensorflow后,会自动安装与之相兼容的numpy,这时候使用Tensorflow运行程序是没有问题的,但是在用conda安装pandas等与numpy存在关联的第三方库后,也会默认安装另一个版本的numpy,这时候虚拟环境中就存在了两个版本的numpy,再运行程序,就会发生如上所示的错误。

用我的电脑举例,在安装Tensorflow2.0.0后,conda提示默认的numpy版本是1.19.0

在环境中安装了pandas后,conda提示会默认安装numpy1.13.1的版本

很明显这个时候两个numpy的版本发生了冲突

错误解决

解决的办法也很简单粗暴

1.首先记得Tensorflow对应的numpy版本,用我的情况举例,版本号是1.19.0

2.使用conda uninstall numpy卸载两个版本的numpy,记得该命令需要执行两次

可以看到,第一次执行该命令时,卸载的是1.19.0的版本

使用pip show numpy命令查看numpy时,还存在1.13.0的版本

继续卸载

这时候Anaconda虚拟环境中已经不存在numpy了

3.安装第一步版本的numpy

这时候再导入Tensorflow和pandas,并执行相关的程序时,就不会报错了。

总结

1.在使用conda安装第三方库时,会自动安装相关依赖库,这时候可能会与已有的环境包冲突,在安装时需要注意。

2.在执行命令中可以指定第三方库的版本,安装与1.19.0的numpy对应的pandas,问题可能也可以解决,但是我没有尝试过,不清楚会不会导致环境中存在两个相同版本的numpy。

3.在卸载numpy1.13.0后,恰好在我的环境中,pandas也可以和1.19.0的numpy兼容。但是在不同环境,执行上述的操作后,也有可能发生pandas与numpy不兼容的情况,这时候就需要去改变Tensorflow或者pandas的版本了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值