目录
一、更改服务器。
二、调整tensorflow版本
三、将python降级
1、进入conda命令行,依次输入以下命令
2、换回默认源
3、降级为python3.6
四、降级后再升级
这周接到一个任务,需要在python中安装tensorflow,跑一下数据。TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief。原以为很简单事的事,没想到却是让我大费周折。
一、更改服务器。
我安装的python是3.9,在Pycharm中安装无法安装tensorflow,选择安装的是最新版的tensorflow,安装失败后显示ConnectTimeOutError。连接超时,应该是国外服务器下载速度慢的缘故,把下载包的服务器地址由https://pypi.python.org/simple改为Simple Index后,顺利完成安装。
二、调整tensorflow版本
tensorflow完成安装后, 再运行程序时,显示错误:AttributeError: module ‘tensorflow‘ has no attribute ‘placeholder‘,查看发现,报错原因是因为tensorflow自 2.0版本去掉了placeholder,placeholder只有tensorflow 1.*版本才有。
三、将python降级
在安装tensorflow 1.15.5时,又出现安装失败,不过不再是timeout,经研究发现,tensorflow 1.x适用的python最高版本为3.6。python3.9下已经写了不少程序了,如果降级后不能用怎么办,这时anaconde解决了我的问题。
1、进入conda命令行,依次输入以下命令
conda config --add channels Index of /anaconda/pkgs/free/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
conda config --add channels Index of /anaconda/pkgs/main/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
conda config --set show_channel_urls yes
2、换回默认源
conda config --remove-key channels
3、降级为python3.6
通过cmd或conda命令行输入:conda create -n py36 python=3.6 anaconda
注:实际上是打造了一套python3.6的环境,这一过程将重新安装所有包,花费时间有点多。
我是在conda命令行安装的
安装好后,会提示:
# To activate this environment, use
#
# $ conda activate py36
#
# To deactivate an active environment, use
#
# $ conda deactivate
在命令行输入conda activate py36 即可,若要返回python3.9,在命令行输入conda deactivate。
win10菜单里会多出Anaconda Powershell Prompt的菜单项,点击就可进入python3.6,非常方便。
四、降级后再升级
将python降级到3.6后,心想这次安装tensorflow1.15.5没问题了,没想到还是出错了,提示 Package 'protobuf' requires a different Python: 3.6.10 not in '>=3.7',要求我将python升级到3.7,这叫什么事啊。
由于很明确,tensorflow1.x适用的python最高版本是3.6,这次没听错误提示的,而是把pip升级了,怀疑是pip版本的问题。
pip升级后,tensorflow1.15.5顺利安装成功,代码也能正常运行了。