actions/setup-python@v3报错:找不到x64架构的Python 3.8版本
解决自托管GitHub Actions Runner中Python版本找不到的问题
错误原因
自托管Runner与GitHub官方托管Runner不同:官方Runner预安装了多版本Python,且actions/setup-python默认允许自动下载缺失版本;而自托管Runner环境下,actions/setup-python@v3默认仅查找本地已安装的Python版本,不会主动下载,因此当指定版本未在Runner本地安装时,就会触发Version X.X was not found in the local cache错误。
解决方案
方案1:允许setup-python自动下载安装Python
修改工作流的Set up Python步骤,添加download: true参数,让action在本地找不到对应版本时自动下载安装:
- name: Set up Python uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} download: true # 开启自托管环境下的Python下载功能
注意:此方案要求自托管Runner能够访问GitHub公共资源。
方案2:手动在自托管Runner上安装所需Python版本(以Ubuntu为例)
直接在Runner机器上安装指定的Python版本,步骤如下:
- 更新系统包列表:
sudo apt update
- 添加第三方Python源(获取更多官方源未包含的版本):
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update
- 安装目标Python版本及开发依赖:
sudo apt install python3.8 python3.8-dev python3.9 python3.9-dev
- 为每个版本安装对应pip:
curl https://bootstrap.pypa.io/get-pip.py | sudo python3.8 curl https://bootstrap.pypa.io/get-pip.py | sudo python3.9
安装完成后重新运行工作流,setup-python即可识别到本地已安装的版本。
方案3:直接使用Runner系统中已有的Python版本
若Runner已安装目标版本,可跳过setup-python步骤,直接指定对应版本的Python路径执行命令:
- name: Install dependencies run: | python3.8 -m pip install --upgrade pip python3.8 -m pip install pytest - name: Run tests run: | cd src python3.8 -m pytest addition.py
(Python 3.9的任务只需将命令中的python3.8替换为python3.9即可)
内容的提问来源于stack exchange,提问作者Afiya Khan
相关产品推荐
相关产品推荐

