解决protobuf在Python 3.5.5下的版本限制问题
项目场景:
在学习强化学习求解组合优化问题时,想采用Ptr-Net + REINFORCE & Critic baseline的策略去训练模型。
语言:python 3.5
框架:tensorflow-gpu 1.0.0
问题描述
安装旧版的tensorflow-gpu时遇到了如下报错:
protobuf requires Python '>=3.7' but the running Python is 3.5.5
You are using pip version 9.0.1, however version 23.3.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
报错的大概意思就是:
protobuf需要Python ‘>=3.7’,但运行的Python是3.5.5
您使用的是pip版本9.0.1,但是可以使用23.3.2版本。
你应该考虑通过’python -m pip install –upgrade pip’命令进行升级。
原因分析:
这个报错可以归结为:
我们想要安装一个包,但系统要求我们使用更高版本的python。
此时我们可以有两种选择:
因为报错中提示我们可以升级pip,所以就考虑是不是更新了pip之后就可以成功安装了呢?
解决方案:
于是首先运行如下命令升级pip,大家也可以选择其他的镜像源,使用镜像源下载速度会快很多。:
python -m pip install --upgrade pip -i https://pypi.mirrors.ustc.edu.cn/simple
pip更新成功。
更新后再次运行如下命令,重新安装1.0.0版本的tensorflow-gpu :
pip install tensorflow-gpu==1.0.0 -i https://pypi.mirrors.ustc.edu.cn/simple
tensorflow-gpu==1.0.0成功安装。
最后个人有个疑问,因为既没有更新python,也没有安装指定的适合python3.5的protobuf ,为何tensorflow-gpu-1.0.0就成功安装了?
个人猜测是因为更新pip后,可能已经安装了新的protobuf版本,该版本支持Python 3.5.5。各位有啥独到的见解可以给我留言。