当前位置:首页>python>PyBuilder:一个专门为 Python 项件量身定做的构建工具

PyBuilder:一个专门为 Python 项件量身定做的构建工具

  • 2026-10-04 00:38:33
PyBuilder:一个专门为 Python 项件量身定做的构建工具

PyBuilder 是啥玩意儿?PyBuilder 就是专门为 Python 项件量身定做的构建工具,整个代码全是纯 Python 写的,装上以后,你可以把“跑测试、生成文档、打包发布”这些琐碎活儿全交给它。它的理念跟 Java 那些老牌构建工具(Maven、Gradle)有点像——基于依赖的插件系统,想干啥就装啥插件,灵活得很。

功能
说明
典型插件
依赖管理
自动下载、解析 requirements.txt,保证环境一致
python.install_dependencies
单元测试
集成 unittest、pytest,跑完自动生成报告
python.unittest
、python.pytest
代码覆盖率
统计覆盖率,生成 HTML 报告
python.coverage
文档生成
支持 Sphinx,一键生成 API 文档
python.sphinx
打包发布
生成 sdist、wheel,直接推到 PyPI
python.distutils
、python.pypi,
自定义任务
用 Python 写自定义 Task,随心所欲
core
 插件提供 API

为啥要用 PyBuilder?

  • • 手动操作太繁琐:每次跑测试、生成文档、打包,都得敲一堆命令,尤其是项目大了以后,容易忘记哪个步骤漏了。
  • • 团队协作不统一:新人进来,环境不对,构建失败,大家只能在 Slack 里互相求助。
  • • 插件生态还行:官方自带的插件已经能覆盖大多数需求,想要更高级的功能,只要自己写个插件也不难。

换句话说,PyBuilder 就是帮你把这些“重复劳动”搬到配置文件里,让 CI/CD 流程跑得更顺畅。


装起来超简单

# 正式版pip install pybuilder# 想尝鲜(pre-release)可以加上 --prepip install --pre pybuilder

装完以后,项目根目录里新建 build.py,写几行代码就能跑起来。下面给你演示一个最小示例:

# build.pyfrom pybuilder.core import use_plugin, init# 必装插件use_plugin("python.core")use_plugin("python.unittest")use_plugin("python.coverage")use_plugin("python.distutils")# 默认任务:执行完所有步骤后直接 publish(发布到 PyPI)default_task = "publish"

保存后,执行:

pyb clean install
  • • clean → 把旧的产物删掉
  • • install → 安装依赖、跑测试、生成覆盖率报告、打包

如果想一步到位直接发布,直接跑 pyb(默认执行 publish)。


基本使用流程

步骤
操作
说明
1️⃣ 初始化pyb init
(可选)
生成默认目录结构 src/main/python、src/unittest/python
2️⃣ 编写插件
在 build.py 里 use_plugin
只要插件在 pybuilder.plugins 里能被调到就行
3️⃣ 定义属性@init
 装饰函数里 project.set_property
比如 project.set_property('dir_source_main_python', 'my_pkg')
4️⃣ 运行任务pyb <task>
常用任务:clean、install_dependencies、run_unit_tests、publish
5️⃣ CI 集成
把 pyb install 加入 .github/workflows 或 Jenkins
自动化构建,代码一推就跑完整流程

小贴士:如果你只想跑测试,pyb run_unit_tests 就能搞定;想看覆盖率报告,pyb coverage_report。


优点 & 缺点

优点
缺点
全 Python
:不需要额外的 JVM、Node 环境
生态相对小
:相比 invoke、tox 插件数量少一点
插件化
:官方插件覆盖常用需求,自己写插件也不难
学习曲线
:首次接触时要搞懂得 build.py 的结构
配置即代码
:使用 Python 编写构建脚本,灵活度高
文档散乱
:官方文档有点分散,需要自行搜罗例子
兼容多版本
:支持 3.9‑3.13 以及 PyPy
社区活跃度
:相对更热门的工具(如 poetry)社区稍弱

小结PyBuilder 把传统的构建流程搬进了 Python 世界,用插件化的方式把测试、覆盖率、文档、打包全都串起来。装个 pip install pybuilder,写几行 build.py,基本的 CI/CD 就能跑起来。它的缺点主要是生态和社区规模不如 poetry、tox 那么大,但如果你追求“一次配置,处处可用”的便利感,PyBuilder 完全能满足需求。赶紧在你的下一个项目里试试吧,省下的时间可以去写代码、喝咖啡甚至追剧。

项目地址: https://github.com/pybuilder/pybuilder

最新文章

随机文章