【python】踩坑:ImportError: numpy.core.multiarray failed to import
前言
首先说,这是我在运行Tensorflow程序时遇到的。起因就是因为我安装了一个不常用的库,在安装了这个库之后再运行脚本就出现了下面的错误。并且console挂掉了额。
ImportError: DLL load failed: 找不到指定的模块。
ImportError: numpy.core.multiarray failed to import
原因:我猜测的原因是numpy版本出问题了,与tensorflow不兼容了,因为我安装的这个库依赖numpy,所以在安装它的时候重新安装了numpy。
解决方法
第一时间想到的方法就是卸载了numpy,再重新安装,尝试后发现并不能解决问题。网上所提出的下面的方案尝试后也不行。
pip install -U numpy
然后我在没卸载tensorflow的情况下,直接安装了tensorflow。
pip install --upgrade --ignore-installed tensorflow
这时候再运行却报错,环境中有旧版本的numpy库,建议我一一卸载,然后重新安装。于是我用下面的命令卸载了numpy。
pip uninstall numpy
然后接着删,发现还有一个1.16.4的版本,于是删除后,又用下面的指令看了下还有没有版本。发现还有一个版本。估计就是这个版本低于了我Tensorflow的版本了。(罪魁祸首就是他)
pip show numpy
继续删除后,又安装了numpy1.17.0版本。
这时候在运行,可以出现正常的结果了,但是又有一系列系统提示;
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'.
这个提示的意思就是numpy的版本太高了。这时候我们就需要将numpy安装成刚刚第二个被删除的1.16.4版本。
pip install numpy==1.16.4
再运行就正常了。问题全部解决。
思考
仔细想来,这个问题的出现,是因为我在安装库的时候,附带的安装了numpy1.13.1。这是tensorflow检测到了他,发现与tf版本不对应。前面其实走了许多弯路。只需要卸载完所有的numpy,再重新安装对应的版本就好。我得tensorflow是1.14.0版本。应该使用pip uninstall numpy卸载所有的numpy,再安装1.16.4即可。
每个人所遇到得问题不一定相同,希望我得经验对你有所帮助。
更多推荐
所有评论(0)