build:简洁的 Python 包构建工具 文章目录build简洁的 Python 包构建工具build简洁的 Python 包构建工具PyPA 组织维护的开源项目 build目前收获了 847 个 Starbuild 是一款用于构建 Python 包的命令行工具。它基于 PEP 517 和 PEP 518 规范设计能够在隔离环境中完成整个构建流程生成标准的源代码分发包和 wheel 文件。它的工作方式很直接给定一个包含 pyproject.toml 的 Python 项目build 会自动创建临时虚拟环境安装项目声明的构建依赖调用后端构建器最终将产物输出到 dist/ 目录。整个过程中构建环境与当前环境完全隔离避免了依赖冲突和污染。build 提供的常用参数包括–sdist仅构建源代码分发包–wheel仅构建 wheel 包–metadata输出包元数据为 JSON 格式–outdir指定构建产物输出目录默认是 dist/–no-isolation禁用隔离环境适用于已有完整依赖的场景–installer选择隔离环境中的安装器支持 pip 或 uv默认行为下build 会先构建 sdist再从 sdist 构建 wheel。这个顺序确保了分发包的一致性避免了直接从工作目录构建可能引入的额外文件。安装与基础使用build 可通过 pip 安装$ pip install build安装后在项目根目录执行以下命令即可开始构建$ python -m build这条命令会在隔离环境中完成全部构建流程最终生成 sdist 和 wheel 两种格式的分发包。如果只想生成其中一种格式可以加上对应参数$ python -m build --sdist $ python -m build --wheel需要指定输出位置时使用 --outdir$ python -m build --outdir ./output与其他工具的配合pipx如果你不想把 build 安装到系统环境中可以用 pipx 直接运行$ pipx run build这条命令会临时拉取并执行 build用完即走不会在本地留下持久化的包。uvuv 是近年流行的快速 Python 包管理器。build 支持将 uv 作为隔离环境中的安装器以加速依赖解析和安装过程$ pipx run build[uv] --installer uv如果你已经安装了 uv也可以这样调用$ uvx --from build pyproject-build --installer uvcibuildwheel在跨平台构建 wheel 的场景中cibuildwheel 3.0 已经将 build 作为默认的构建前端。如果你想在 cibuildwheel 中使用 uv 加速可以在 pyproject.toml 中添加如下配置[tool.cibuildwheel] build-frontend build[uv]注意运行前需要先确保 uv 已安装在环境中。Conda在 conda-forge 上build 对应的包名是 python-build可以通过 conda 包管理器直接安装使用。对于需要打包和分发 Python 项目的开发者来说build 提供了一套标准、简洁且可靠的构建流程。它是 PyPA 推荐的现代构建工具也是理解 Python 包构建机制的一个很好的入口。对于需要打包和分发 Python 项目的开发者来说build 提供了一套标准、简洁且可靠的构建流程。它是 PyPA 推荐的现代构建工具也是理解 Python 包构建机制的一个很好的入口。