
本文旨在帮助解决在使用 GitHub 自托管 Runner 时遇到的 Python 版本问题,特别是当 actions/setup-python 无法找到指定 Python 版本时。我们将分析问题原因,并提供相应的解决方案,确保你的自托管 Runner 能够正确配置 Python 环境,顺利运行你的 GitHub Actions 工作流。
问题分析
当你在 GitHub 自托管 Runner 上使用 actions/setup-python Action 时,可能会遇到类似以下错误:
Run actions/setup-python@v3 Version 3.9 was not found in the local cache Error: Version 3.9 with arch x64 not found The list of all available versions can be found here: `https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json`
这通常表明 setup-python Action 无法在你的自托管 Runner 上找到你指定的 Python 版本。
根本原因
根据官方文档,setup-python Action 依赖于 GitHub Actions 托管环境提供的 Python 发行版。这意味着,setup-python 仅支持与 GitHub Actions 托管环境相同的操作系统版本。
立即学习“Python免费学习笔记(深入)”;
具体来说,setup-python 主要支持以下操作系统:
- Ubuntu (特定版本,通常是最新的 LTS 版本)
- Windows (特定版本)
如果你使用的自托管 Runner 运行的是不支持的 Linux 发行版(例如,AlmaLinux、Fedora 等),或者不受支持的 Ubuntu 版本(例如,非 LTS 版本),那么 setup-python 很可能无法正常工作,并抛出上述错误。
解决方案
解决此问题的关键在于确保你的自托管 Runner 运行的是 setup-python 支持的操作系统。以下是一些可能的解决方案:
酷纬企业网站管理系统Kuwebs是酷纬信息开发的为企业网站提供解决方案而开发的营销型网站系统。在线留言模块、常见问题模块、友情链接模块。前台采用DIV+CSS,遵循SEO标准。 1.支持中文、英文两种版本,后台可以在不同的环境下编辑中英文。 3.程序和界面分离,提供通用的PHP标准语法字段供前台调用,可以为不同的页面设置不同的风格。 5.支持google地图生成、自定义标题、自定义关键词、自定义描
更换操作系统: 最直接的解决方案是将自托管 Runner 的操作系统更换为 setup-python 支持的 Ubuntu 或 Windows 版本。这是最推荐的解决方案,因为它能确保 Action 的兼容性和稳定性。
-
手动安装 Python: 如果由于某些原因无法更换操作系统,你可以考虑手动在自托管 Runner 上安装所需的 Python 版本,并配置环境变量。然后,修改你的 workflow 文件,跳过 actions/setup-python Action,直接使用手动安装的 Python。
-
示例:
steps: - uses: actions/checkout@v3 - name: Set up Python manually run: | # 假设 Python 3.9 已经手动安装在 /opt/python3.9 echo "::add-path::/opt/python3.9/bin" - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt -
注意事项:
- 手动安装 Python 需要你自行管理 Python 的安装、更新和依赖。
- 你需要确保手动安装的 Python 版本与你的项目兼容。
- 需要将 Python 的安装路径添加到 PATH 环境变量中,以便在 workflow 中可以找到 Python 解释器。
-
-
使用 Docker 容器: 你可以使用 Docker 容器来隔离你的构建环境。创建一个包含所需 Python 版本和依赖的 Docker 镜像,然后在 workflow 中使用该镜像运行你的构建步骤。
-
示例:
jobs: build: runs-on: self-hosted container: image: python:3.9 # 或者你自定义的包含 Python 3.9 的镜像 steps: - uses: actions/checkout@v3 - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Run tests run: pytest -
注意事项:
- 你需要熟悉 Docker 的基本概念和使用方法。
- 构建 Docker 镜像可能需要一些时间。
- 确保 Docker 镜像包含所有必要的依赖项。
-
总结
当你在 GitHub 自托管 Runner 上使用 actions/setup-python Action 遇到 Python 版本问题时,首先要确认你的操作系统是否受支持。如果操作系统不受支持,可以考虑更换操作系统、手动安装 Python 或使用 Docker 容器来解决问题。选择哪种解决方案取决于你的具体情况和需求。
建议优先考虑更换操作系统,因为它能提供最佳的兼容性和稳定性。 如果无法更换操作系统,手动安装 Python 或使用 Docker 容器也是可行的替代方案,但需要你自行管理 Python 环境和依赖。









