解决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。
此时我们可以有两种选择:

  • 更新python到指定版本或更高版本的Python。
  • 手动安装适用于低版本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。各位有啥独到的见解可以给我留言。

    物联沃分享整理
    物联沃-IOTWORD物联网 » 解决protobuf在Python 3.5.5下的版本限制问题

    发表评论