构建发行版
若要将项目分发给他人(例如,上传到 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
发行版是否与指定的哈希值匹配: