
本文旨在帮助开发者解决在使用 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 版本。
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如果你的操作系统是受支持的,但仍然遇到问题,请检查 https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json 上的 Python 版本清单,确认你指定的 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注意事项:
如果你使用 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注意事项:
解决 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
相关文章:
如何提高微信支付的安全性_微信支付安全防护与设置建议
解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常
WooCommerce产品页高级定制:实现基于分类的交叉销售
漫蛙2在线漫画入口 漫蛙正版漫画网页版直达
J*aScript对象创建方式_J*aScript设计模式应用
谷歌浏览器浏览体验优化_谷歌浏览器新版直连永久可用提示
凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法
AO3同人作品网入口 AO3搜索引擎官网永久地址
php源码怎么看淘宝客系统_看php源码淘宝客系统技巧
火狐浏览器占用内存高卡顿怎么办 火狐浏览器性能优化设置技巧
poki免费入口快捷访问 poki人气小游戏直接玩站点
TikTok网页版直接登录 TikTok网页端官方平台入口
C#中解析不规范的HTML为XML 常见的坑与解决办法
Composer如何解决json扩展缺失的错误
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】
PHP表单提交后函数重复执行的解决方案:管理$_POST数据
taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】
MongoDB聚合管道:正确匹配对象数组中_id的方法
修复二维数组索引越界异常:一维循环到二维坐标的正确映射
使用CSS更改登录屏幕输入框中PNG图标颜色的策略与局限性
Centos/Linux 系统下安装 composer 的完整步骤
c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架
抖音网页版企业服务中心登录入口_抖音网页版企业登录平台
UC浏览器网页版登录入口官网 电脑版网址入口
J*a 递归快速排序中静态变量的状态管理与陷阱
Pyrogram与g4f集成:异步编程实践与常见错误解决
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
FullCalendar 自定义按钮样式定制指南
qq游戏手机版下载安装_qq游戏移动端入口
Mac终端命令大全_Mac常用Terminal指令速查
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
Go语言JSON解析深度指南:动态访问与结构体映射实践
响应式图片在网页设计中的正确实现方法
b站怎么取消点赞_b站点赞取消操作方法
PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程
优化HTML表单样式:解决输入框焦点跳动与元素间距问题
Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】
蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台
2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC
CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题
哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法
Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏
葱吃多了会怎样 葱吃多了会伤胃吗
C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图
动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道
Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】
深入理解J*a链表中的IPosition接口与使用
天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南
HTML元素状态管理:根据DIV内容动态启用/禁用按钮
*请认真填写需求信息,我们会在24小时内与您取得联系。