前言

  前些日子发现微信自动推送不能正常推送了,一直没顾得上看是怎么回事,今日解决这个问题,顺便就在这里记录一下解决方案。

查看错误

分析原因

  因为程序一直正常运行挺久了,所以问题应该不大,下面分析原因。
  报错显示是3.9.1版本的python没有找到,并且给出了所有可用版本的列表链接:https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json

  从图中可以看出,其中Ubuntu上有3个二进制压缩包,并且给出的对应的Ubuntu版本号,返回action执行文件,可以看到我用的Runner(runs-on)是ubuntu-latest,而目前最新的版本则为Ubuntu 22.04,所以上边的三个压缩包并没有可供Ubuntu 22.04使用的,因此会报错误 Error: Version 3.9.1 with arch x64 not found。此外,可以看到在此句错上一行显示 Version 3.9.1 was not found in the local cache ,查阅得知,actions/setup-python(当前最新是 v4)支持在两个地方寻找可用的Python版本,一个是在用户指定的Runner Images缓存中寻找(优先),另一个是在actions/python-versions中寻找(次要)。所以在GitHub的Runner Images中查看python缓存支持版本

  可以发现我所使用的3.9.1版本的python并不在其中,因而会出现此句错误。

解决办法

  经过分析,解决办法自然也有了头绪,在action执行文件中进行以下修改:

方法一

  将Runner Image(runs-on)修改为ubuntu-20.04

方法二

  将python-version修改为v3.9.12

成功解决