GitHub自托管Runner Python版本匹配失败求助
解决自托管Runner上actions/setup-python@v3找不到Python 3.9的问题
针对你在AlmaLinux 9.3自托管Runner上遇到的Version 3.9 was not found in the local cache错误,核心原因是actions/setup-python@v3默认优先从GitHub缓存下载Python版本,而非直接识别本地已安装的Python。以下是几种可行的解决方法:
方法1:直接使用本地已安装的Python
既然本地已经安装了Python 3.9.13,可跳过setup-python步骤,直接在工作流中指定本地Python路径:
jobs: build: runs-on: self-hosted steps: - uses: actions/checkout@v4 - name: 配置本地Python环境 run: | # 替换为你本地Python 3.9的实际路径,可通过`which python3.9`获取 export PATH="/usr/bin/python3.9/bin:$PATH" # 验证版本 python --version - name: 安装依赖 run: | python -m pip install --upgrade pip pip install -r requirements.txt # 若用conda环境,执行:conda env create -f requirements.yml && conda activate your-env-name
方法2:让setup-python识别本地Python
如果仍想使用setup-python,需确保本地Python在系统PATH中,或通过参数引导action检测本地版本:
- 在自托管Runner机器上,将Python 3.9的路径加入全局PATH,或创建符号链接(需sudo权限):
sudo ln -s /path/to/your/python3.9 /usr/bin/python3.9 - 修改工作流yaml,指定具体版本并开启本地检测:
- name: Set up Python 3.9.13 uses: actions/setup-python@v3 with: python-version: '3.9.13' check-latest: true # 强制检测本地最新匹配版本 cache: pip # 可选,缓存pip依赖加速后续构建
方法3:基于Conda环境直接构建
若你的requirements.yml是Conda环境配置文件,可直接用Conda创建环境,完全绕开setup-python:
jobs: build: runs-on: self-hosted steps: - uses: actions/checkout@v4 - name: 创建Conda环境 run: | conda env create -f requirements.yml conda activate your-env-name # 替换为requirements.yml中定义的环境名 python --version - name: 安装PyTorch run: | conda activate your-env-name # 替换为对应CUDA版本的PyTorch安装命令,例如: conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
关键排查点
- 确认自托管Runner的运行用户(默认是
runner)有权限访问Python 3.9的安装路径,可在Runner机器上切换到该用户执行python3.9 --version验证。 - 检查工作流中是否有其他步骤修改了
PATH环境变量,导致setup-python无法定位本地Python。
内容的提问来源于stack exchange,提问作者Matthew D.
相关产品推荐
相关产品推荐

