3.4.8 导出锁文件

原文链接: https://docs.astral.sh/uv/concepts/projects/export/

3.4.8 导出锁文件

uv 可以把锁文件导出为不同格式,以便与其他工具和工作流集成。uv export 命令支持多种输出格式,各自适用于不同场景。

关于锁文件及其创建方式的更多细节,请参阅项目结构和锁定与同步文档。

导出格式概览

uv 支持三种导出格式:

可以用 --format 标志指定格式:

1
2
3
$ uv export --format requirements.txt
$ uv export --format pylock.toml
$ uv export --format cyclonedx1.5

提示

默认情况下,uv export 输出到 stdout。任何格式都可以用 --output-file 写入文件:

1
2
3
$ uv export --format requirements.txt --output-file requirements.txt
$ uv export --format pylock.toml --output-file pylock.toml
$ uv export --format cyclonedx1.5 --output-file sbom.json

requirements.txt 格式

requirements.txt 格式是 Python 依赖支持最广泛的格式。它可以与 pip 及其他 Python 包管理器配合使用。

基本用法

1
$ uv export --format requirements.txt

生成的 requirements.txt 文件之后可以通过 uv pip install 或 pip 等其他工具安装。

注意

总体而言,我们建议不要同时使用 uv.lock 和 requirements.txt 文件。uv.lock 格式更强大,并包含 requirements.txt 无法表达的特性。如果你发现自己需要导出 uv.lock 文件,可以考虑提交一个 issue 来讨论你的用例。

pylock.toml 格式

PEP 751 定义了基于 TOML 的 Python 依赖锁文件格式。uv 可以把项目的依赖锁文件导出为该格式。

基本用法

1
$ uv export --format pylock.toml

CycloneDX SBOM 格式

uv 可以把项目的依赖锁文件导出为 CycloneDX 格式的软件物料清单(SBOM)。SBOM 提供应用中所有软件组件的完整清单,对安全审计、合规和供应链透明度都很有用。

重要

导出为 CycloneDX 的支持处于预览阶段,未来版本可能发生变化。

什么是 CycloneDX?

CycloneDX 是创建软件物料清单的业界标准格式。CycloneDX 机器可读,并得到安全扫描工具、漏洞数据库和软件组成分析(SCA)平台的广泛支持。

基本用法

要把项目的锁文件导出为 CycloneDX SBOM:

1
$ uv export --format cyclonedx1.5

这会生成一个 JSON 编码的 CycloneDX v1.5 文档,包含项目及其所有依赖。

SBOM 结构

生成的 SBOM 遵循 CycloneDX 规范。uv 还会在组件上包含以下自定义属性:

  • uv:package:marker:环境标记(例如 python_version >= "3.8")
  • uv:workspace:path:工作区成员的相对路径

后续步骤

要进一步了解锁文件与导出,请参阅锁定与同步文档和命令参考。

或者继续阅读,了解如何构建项目并发布到包索引。

最后修改 September 25, 2026: 更新 (221c74c33)