新闻中心
解决 GitHub 自托管 Runner 无法找到 Python 版本的问题

本文旨在帮助开发者解决在使用 GitHub 自托管 Runner 时,`actions/setup-python` 无法找到指定 Python 版本的问题。我们将分析可能的原因,并提供详细的解决方案,确保你的 CI/CD 流程顺利运行。核心问题在于自托管 Runner 的操作系统与 `setup-python` action 的兼容性。
问题分析
当你在 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 *ailable versions can be found here: `https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json`
这通常表示 action 无法在 Runner 的环境中找到你指定的 Python 版本。
解决方案
1. 操作系统兼容性
actions/setup-python action 对 Runner 的操作系统有特定的要求。根据官方文档,Python distributions 只在 GitHub Actions hosted environments 可用的操作系统上提供。这意味着,如果你的自托管 Runner 使用了不受支持的 Linux 发行版(例如 AlmaLinux、Fedora 等),setup-python action 可能无法正常工作。
解决方案:
更换操作系统: 推荐使用 Ubuntu 或 Windows 等 GitHub Actions hosted environments 支持的操作系统。这是最直接有效的解决方案。
-
Docker 容器: 使用 Docker 容器来运行你的 CI/CD 流程。你可以创建一个包含所需 Python 版本的 Docker 镜像,并在 Runner 中运行该镜像。
示例 Dockerfile:
FROM ubuntu:latest # 安装 Python 3.9 RUN apt-get update && apt-get install -y python3.9 python3-pip # 设置 Python 3.9 为默认 Python 版本 RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 # 安装其他依赖 RUN pip3 install --upgrade pip RUN pip3 install flake8 pytest # 设置工作目录 WORKDIR /app # 复制项目文件 COPY . /app # 定义运行命令 CMD ["pytest"]
然后,在你的 workflow 文件中,使用 Docker 镜像来运行你的测试:
Musho
AI网页设计Figma插件
76
查看详情
name: Python application on: push: branches: [ "main" ] pull_request: branches: [ "main" ] permissions: contents: read jobs: build: runs-on: self-hosted steps: - uses: actions/checkout@v3 - name: Build and run Docker container run: | docker build -t my-python-app . docker run my-python-app
2. 检查 Python 版本清单
如果你的操作系统是受支持的,但仍然遇到问题,请检查 https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json 上的 Python 版本清单,确认你指定的 Python 版本是否确实存在。
3. 手动安装 Python
如果 setup-python action 仍然无法工作,你可以尝试手动在 Runner 上安装 Python。
示例 (Ubuntu):
sudo apt update sudo apt install python3.9
然后,在你的 workflow 文
件中,直接使用 python3.9 命令:
name: Python application
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
runs-on: self-hosted
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
run: |
python3.9 -m pip install --upgrade pip
pip3.9 install flake8 pytest
if [ -f requirements.yml ]; then pip3.9 install -r requirements.yml; fi
- name: Lint with flake8
run: |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest *.py注意事项:
- 确保手动安装的 Python 版本与你的代码和依赖项兼容。
- 如果手动安装了多个 Python 版本,需要正确配置 PATH 环境变量,以便系统能够找到正确的 Python 可执行文件。
4. Conda 环境 (如果使用)
如果你使用 Conda 管理 Python 环境,确保 Conda 已正确安装和配置,并且你的 workflow 文件中正确激活了 Conda 环境。
name: Python application
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
runs-on: self-hosted
steps:
- uses: actions/checkout@v3
- name: Set up Conda
uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: flow_corrections
environment-file: requirements.yml
python-version: 3.10
- name: Install dependencies
shell: bash # Ensure bash shell is used for conda commands
run: |
conda env update --file requirements.yml --name flow_corrections --prune
pip install -r requirements.txt # If you h*e a requirements.txt file
- name: Lint with flake8
run: |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest *.py注意事项:
- 确保 requirements.yml 文件中的 Python 版本与 conda-incubator/setup-miniconda action 中指定的 python-version 匹配。
- 使用 conda env update 命令可以确保 Conda 环境与 requirements.yml 文件保持同步。
总结
解决 GitHub 自托管 Runner 无法找到 Python 版本的问题,通常需要考虑操作系统兼容性、Python 版本清单、手动安装 Python 以及 Conda 环境配置等因素。选择合适的解决方案,可以确保你的 CI/CD 流程顺利运行。如果问题仍然存在,请仔细检查错误日志,并参考 GitHub Actions 和 setup-python action 的官方文档。
以上就是解决 GitHub 自托管 Runner 无法找到 Python 版本的问题的详细内容,更多请关注其它相关文章!
# 如果你
# 线上如何跨年营销推广
# 网站优化seo是什么工作类型啊
# 广安网站建设价格查询网
# 网站服务建设案例
# 网站推广软文在哪
# 移动怎么优化网站广告
# 兰州市网站建设费用
# 齐河专业网站建设
# 各单位网站推广办法
# 天水网络营销推广机构
# 并在
# 推荐使用
# 你在
# 多个
# linux
# 文档
# 这是
# 你可以
# 镜像
# ubun
# app
# 操作系统
# github
# windows
# docker
# json
# git
# js
# python
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
iwriter统一登录平台 iwrite账号密码登录页面
AO3同人作品网入口 AO3搜索引擎官网永久地址
在J*a中如何开发简易电子商务商品管理系统_商品管理系统项目实战解析
Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接
HTML空白字符处理机制:渲染、DOM与编码实践
高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】
J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程
sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统
Django模型中自动计算可用余额的实现方法
outlook中文官网入口地址 outlook官方中文版直达首页链接
深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量
妖精动漫免费平台 妖精动漫官网资源观看网址
NRF24L01数据传输深度解析:解决大载荷接收异常与分包策略
解决Python单元测试中Mock异常方法调用计数为零的问题
漫蛙2正版漫画站 漫蛙2网页版快速访问入口
照顾宝贝2小游戏点击立即在线玩
豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售
Golang切片为何属于引用类型_Golang slice底层结构与引用语义说明
LINUX怎么设置定时任务_LINUX crontab配置教程
漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道
双系统安装时,如何设置默认启动系统? msconfig命令了解一下!
腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法
MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId
Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略
CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠
抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站
AO3最新入口2025公告_AO3中文官网合集
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】
win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】
为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法
css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间
必由学登录入口 必由学官方网站在线访问链接
QQ邮箱官方登录入口_QQ邮箱网页版快捷使用平台
CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示
Mac终端命令大全_Mac常用Terminal指令速查
R星幕后开发视频泄露 包含《GTA6》等多款大作
html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】
J*aScript生成器_j*ascript异步迭代
天猫2025双十一0点秒杀攻略 天猫爆款抢购时间
汽车之家官方网站官网入口_汽车之家网页版直接进入
腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录
如何在J*a中实现统一对象行为接口_项目大型化时的接口规范化
2026春节假期票务安排_2026春节放假购票指南
正确连接J*aScript到HTML实现可点击图片与自定义事件处理
向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程
《GTA6》开发画面疑似泄露!这次可不是AI了
yy漫画网页版官方入口_yy漫画官网登录页面链接
高德地图公交到站提醒失败如何解决 高德提醒权限设置
腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址


2025-11-03
浏览次数:次
返回列表