故事背景
在我win10 64位家庭版的系统上,安装python3.6.5,使用TensorFlow1.12.0配用keras2.2.4。打包UI界面。打包完成以后在我电脑上使用很愉快。
但是,当我换一台机器进行测试的时候,出现了标题的错误。
ImportError:DLL load failed with error code -1073741795
Failed to load the native TensorFlow runtime
测试的机器为win7 64位旗舰版(并且已经被激活)
本台测试机上没有安装python等一切关于打包有关的内容。
错误产生原因
这个错误的直接原因是dll缺失,但遗憾的是,很难定位那个dll缺失造成的。
奇怪的是,同样程序在另外一家合作伙伴的电脑上运行没有问题,经对比,两家虽然都是win7系统,但一个是旗舰版,内核是6.0,另一个是sp1,内核是6.1??
查看内核方法。cmd————> 输入指令VER
下载微软升级补丁升级到sp1即可
Windows 7 SP1(Service Pack 1) KB976932
事实上,现在大部分dll缺失问题都是系统版本造成的。尤其是win7这种老系统,移动要更新至最新版本。近年新开发的软件需要sp1的底层库才能运行。
最后,问题并没有解决。(或许你可以尝试一下)
我换一台机器之后确实是成功了,同样的win7 64位,直接使用。没有一丝问题。
解决方式二
可以更换tensorflow-gpu==1.12.0
事后发现这种方式我也是没有成功解决。
可是,在我卸载了之后又安装上tensorflow发现不能使用了,也会爆出上述错误。
解决方式
卸载相关的包,比如six,tensorbroad等这些依赖的包,再次安装下tensorflow之后,能够使用了,至于再次使用那台爆错的机器测试,我没有再次测试,我怀疑这不是跟系统有关,而是跟硬件有关。
先前尝试的那台设备是公司10年的电脑。我的天,硬件都更新好几代了好吧。