【python】ImportError: DLL load failed: 找不到指定的模块

原来跑过的程序突然报一堆ImportError,好像都是重新安装keras包开始的

方法一:创建python版本统一的虚拟环境

有人说是因为python版本与tensorflow版本不一致造成的,我的环境确实是tensorflow版本是3.5,python版本是3.6

所以我创建了一个虚拟环境,其中python版本是3.5

将pycharm中File>Settings>Project Interpreter中的环境也改成3.5的,但是依旧有问题,不过这次报的错是找不到keras

然后尝试在此虚拟环境pip,结果报此包已经安装过,能在/lib/site-packages中找到。卸载之后重新安装仍然找不到:


但Anaconda的环境里找不到这个包,官方安装也会报“Multiple Errors on install ”。(现在我也不明白为什么会找不到。。spyder和pycharm里面也看不到这个包,明明Activate虚拟环境之后conda list可以找到这个包)

这有个参考文档Conda reports that a package is installed, but it appears not to be

里面提供了很多解决,暂时还没全部尝试过。


此方法无果

方法二:重新安装所有相关的包

还有人说是因为包与包之间版本不兼容的问题,我conda list的结果是:


确实只有keras相关的包安装channel不一致,我决定采用lzhalan2016 的方法把相关的包都卸载(Pip uninstall),然后用.whl安装。

直接下载.whl文件,window的下载地址:lfd.uci.edu/~gohlke/pyt

然后在shell中:pip install XXX.whl

keras相关的包有:ipykernel、scipy、numpy、pyYAML、six、keras 

此时为了避免第一个问题,这些包我都安装在虚拟环境中了。另外,在找资料的过程中,发现好像大家反映比较多的都是numpy的问题比较大,大家可以直接试试重新安装numpy

后来发现为什么不直接base环境下一个3.6的Tensorflow呢。。真是有点蠢呀。。_(:з」∠)_

但是仍然报错:“tensorflow-1.7.0-cp36-cp36m-win_amd64.whl is not a supported wheel on this platform.“π__π

看来.whl文件走不通了。。因为之前的channel问题,我决定不用镜像直接pip install,让它慢悠悠地安装吧。。(如果还不行我就只能重装anaconda了(╥╯^╰╥)

下到77%时又又又报错:”THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.“

有人说是因为网速不好,重新试几遍。

有人说与Why does pip fail with bad md5 hash for package?一样,确实是THE REQUIREMENTS FILE没有更新,可以用以下解决:

sudo pip install --no-cache-dir flask

我两种都试试吧,总比重装anaconda好

成功!!

结论

由于我大部分相关的都重新安装了一遍,不太能确定这次是因为什么,但总之大体可以按照以下步骤排查:

1、检查环境变量

2、检查python、tensorflow及各安装包版本

3、检查channel

4、重装重装再重装


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值