新闻中心
如何在 GitHub Actions 中搭建 Python 环境
使用 actions/setup-python@v5 可轻松配置 Python 环境,指定 python-version 即可安装对应版本,结合 strategy.matrix 实现多版本测试,通过 actions/cache@v3 缓存 pip 依赖提升 CI 效率,并依次执行依赖安装、测试运行与代码检查等步骤。

在 GitHub Actions 中搭建 Python 环境非常简单,主要通过官方提供的 actions/setup-python 动作来实现。你只需要在工作流文件中指定 Python 版本,GitHub Actions 就会自动为你配置好运行环境。
使用 setup-python 安装指定 Python 版本
在你的工作流文件(如 .github/workflows/test.yml)中,使用 actions/setup-python@v5 来安装 Python:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: acti
ons/setup-python@v5
with:
python-version: '3.11'
这会将 Python 3.11 安装到运行环境中,并将其设为默认版本。
支持多版本测试
如果你的项目需要在多个 Python 版本中测试,可以使用 strategy.matrix 来批量运行:
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: python -m pytest
这样每个 Python 版本都会独立运行一次测试流程。
如何在IOS平台下搭建PhoneGap开发环境 WORD版
本文档主要讲述的是如何在IOS平台下搭建PhoneGap开发环境;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
查看详情
缓存依赖以加快构建速度
为了提升 CI 效率,建议缓存 pip 安装的依赖包:
- name: Cache pip
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
这段配置会根据 requirements.txt 的内容生成缓存键,避免重复下载已安装的包。
常用操作补充
搭建完 Python 环境后,通常还需要:
-
安装依赖:
pip install -r requirements.txt -
运行测试:
python -m unittest或pytest -
检查代码风格: 使用
flake8或ruff -
构建包:
python -m build(需安装build)
基本上就这些。只要正确使用 setup-python,再配合依赖安装和测试命令,就能在 GitHub Actions 上稳定运行 Python 项目。不复杂但容易忽略的是缓存和多版本测试配置,合理使用能显著提升效率。
以上就是如何在 GitHub Actions 中搭建 Python 环境的详细内容,更多请关注其它相关文章!
# 优化设计
# 盘龙区seo开户
# 贷款推广渠道营销案例
# SEO杨斌博客
# 网站建设文字
# 肥东短视频关键词排名
# 发廊如何用图片营销推广
# 泰州网站建设易搜互联
# 建设部网站配色练习
# 多地企业如何优化seo
# 山西网络推广seo教程
# 文档
# 就会
# python环境
# 移除
# 首页
# 自定义
# 工作流
# 运行环境
# 的是
# 如何在
# ubuntu
# github
# git
# python
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Golang切片为何属于引用类型_Golang slice底层结构与引用语义说明
HTML长属性值处理:表单action路径优化与代码规范应对
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异
sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置
京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比
中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】
J*aScript动态修改指定div内所有a标签样式指南
AO3官方在线访问地址 Archive of Our Own最新镜像合集
微博网页版首页入口 微博电脑端官网登录链接
React Router v6 教程:构建认证保护的私有路由与重定向策略
vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法
Python中高效访问嵌套字典与列表中的键值对
Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】
微信网页版官方快速登录入口 微信网页版网页版账号直达
汽水音乐网页版使用入口_汽水音乐电脑版播放指南
Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】
微信客户端如何收红包_微信客户端接收红包使用教程
在J*a里如何理解依赖关系的方向_依赖方向在模块结构中的作用
qq游戏跨平台入口_qq游戏多设备同步登录
抖音网页版平台入口 抖音网页版官网在线访问教程
Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践
Win11怎么查看电脑配置_Win11硬件配置检测工具使用
c++20的std::jthread是什么_c++可中断线程与RAII式管理
解决J*aScript中重复选择项的确认对话框显示问题
JUnit5/Mockito:优雅测试内部依赖与异常处理的实践
Spring Boot嵌入式服务器与J*a EE:功能支持深度解析
怎么在mac上运行html代码_mac运行html代码方法【指南】
护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?
c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换
漫蛙2(台版)官方入口地址 漫蛙2(台版)正版漫画网页端
汽水音乐在线版入口_汽水音乐网页播放手册
微信网页版扫码登录入口 微信网页版二维码登录入口
魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】
Golang如何实现状态模式管理对象状态_Golang State模式实现技巧
Yandex免登录网页版地址 Yandex搜索引擎官方访问入口
腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址
使用Pandas转换并合并DataFrame:多列映射至统一结构
Win10双系统截图高效法 截屏快捷键速记【技巧】
Kafka Streams中基于消息头条件过滤消息的实现指南
我的世界官方游戏入口 我的世界官网平台直达链接
Django表单验证失败时保留用户输入数据的最佳实践
将HTML Canvas内容转换为可上传的图像文件(File对象)
CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题
Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】
QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录
AO3网页版合集入口 Archive of Our Own同人作品浏览指南
mcjs网页版流畅运行 mcjs低配电脑畅玩入口
解决Python单元测试中Mock异常方法调用计数为零的问题
J*a递归快速排序中静态变量导致数据累积问题的解决方案


2025-11-20
浏览次数:次
返回列表
ons/setup-python@v5
with:
python-version: '3.11'