构建发行版
若要将项目分发给他人(例如,上传到 PyPI 等索引),则需要将其构建为可分发的格式。
Python 项目通常以源发行版(source distributions,sdists)和二进制发行版(binary distributions,wheels)两种形式分发。前者通常是一个 .tar.gz 或 .zip 文件,包含项目的源代码以及一些额外的元数据,而后者是一个 .whl 文件,包含可直接安装的预构建工件。
Important
使用 uv build 时,uv 充当 构建前端,仅确定要使用的 Python 版本并调用构建后端。构建的详细信息,如包含的文件和发行版文件名,由构建后端确定,如在 [build-system] 中所定义。有关构建配置的信息,可以在相应工具的文档中找到。
使用 uv build
uv build 可用于为项目构建源发行版和二进制发行版。默认情况下,uv build 将在当前目录中构建项目,并将构建的工件放置在 dist/ 子目录中:
可以通过向 uv build 提供路径来在其他目录中构建项目,例如 uv build path/to/project。
uv build 首先会构建一个源发行版,然后从该源发行版构建一个二进制发行版(wheel)。
可以使用 uv build --sdist 限制 uv build 仅构建源发行版,使用 uv build --wheel 限制其仅构建二进制发行版,或者使用 uv build --sdist --wheel 从源构建这两种发行版。
构建约束条件
uv build 接受 --build-constraint 参数,该参数可用于在构建过程中限制任何构建需求的版本。结合 --require-hashes 参数使用时,uv 会强制要求用于构建项目的需求与特定的已知哈希值匹配,以确保可重复性。
例如,给定以下 constraints.txt 文件:
运行以下命令将使用指定版本的 setuptools 构建项目,并验证下载的 setuptools 发行版是否与指定的哈希值匹配: