若时间紧迫直接前往【解决办法】,但建议知其然,也要知其所以然,现在磨刀不误后续砍柴。
1. 问题描述
最近出TensorFlow 2版本了,各位请前仆后继火速更新。安装TensorFlow的最直接方法是:使用win+R调用【运行】,输入cmd,直接进入命令提示符,输入pip install tensorflow
按理来说,若不出意外,等待安装成功就行。但有时候,会报错如下:
2. 原因分析
错误原因是,TensorFlow是一个框架,类似一个大包,里面包含了很多子包,其中就有一个叫wrapt,是一个装饰器,详见官方文档和这篇博文:
官方文档链接: https://wrapt.readthedocs.io/en/latest/index.html.
博文链接: https://wrapt.readthedocs.io/en/latest/index.html.
因此,安装TensorFlow的时候,顺序是先把这一堆子包收集好,再安装。
好,问题就出在这儿,当TensorFlow准备安装这些包的时候,发现有个叫wrapt的一模一样的老版本的包 (wrapt-1.10.11)早就安装好了搁那儿躺着呢,但新版本的wrapt是 (wrapt-1.12.1),于是就要卸旧装新。
正准备开刀,却发现这个叫wrapt的包是分布式安装的,TensorFlow无法定位!给的反馈是:怕卸错了,恐造成部分卸载,总之就是搞不定。
3. 解决办法
解决思路是:忽略已装的老版本的wrapt,直接强行上新!类似平时电脑里装某个软件,不卸载老版本,而是直接装一个新的上去,用新的覆盖旧的。
3.1 步骤1
直接输入pip install wrapt --ignore-installed
等待安装成功,
3.2 步骤2
安装wrapt (1.12.1)成功后,再输入pip install tensorflow
等待安装结束。
成功!掌声!