
uv 如何导出 PEP 751 兼容的 pylock.toml 锁文件【免费下载链接】uvAn extremely fast Python package and project manager, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/uv/uv如果你的项目用 uv 管理依赖但需要把锁定的依赖版本交给其他工具或工作流使用就需要把 uv 专有的uv.lock导出为 PEP 751 与 项目结构 文档说明两条导出路径和导出后如何使用该文件。先明确pylock.toml与uv.lock的关系uv.lock是 uv 专有格式其他工具无法直接使用pylock.toml是 PEP 751 标准化的解析输出格式定位为requirements.txt的替代品目标是工具无关——uv 生成的pylock.toml未来可由其他工具安装反之亦然由于 uv 的部分功能无法用pylock.toml表达uv 在项目接口内部仍会使用uv.lock。pylock.toml被支持为导出目标和uv pip命令的输入格式。所以导出的定位是项目内部继续维护uv.lock对外集成时导出pylock.toml。前置条件确保uv.lock已存在uv export以项目锁文件为来源因此需要在包含pyproject.toml的项目根目录操作且uv.lock可用。锁文件的创建与更新方式见 锁定与同步自动uv sync、uv run等使用项目环境的命令会自动创建/更新锁文件显式$ uv lock可以用uv lock --check检查锁文件是否与项目元数据一致等价于其他命令的--locked行为。如果不想导出时触发自动更新可用--frozen直接使用现有锁文件不检查是否最新或--locked锁文件过期时报错而不更新。主路径用uv export从uv.lock导出$ uv export --format pylock.tomluv export默认把结果打印到 stdout。要写入文件加--output-file$ uv export --format pylock.toml --output-file pylock.toml--format参数决定导出格式可选值还有requirements.txt传统 pip 兼容格式和cyclonedx1.5CycloneDX SBOM该格式处于 preview 状态$ uv export --format requirements.txt $ uv export --format pylock.toml $ uv export --format cyclonedx1.5执行后默认情况下解析结果直接显示在终端加--output-file后则生成对应的pylock.toml文件可提交到版本库或传递给下游工具。替代路径用uv pip compile从需求文件直接生成如果不经过项目锁文件而是从一组输入需求生成pylock.toml见 项目结构文档 与 锁定环境 文档$ uv pip compile requirements.in -o pylock.tomlrequirements.in替换为你自己的需求文件路径。uv pip compile的输出默认只显示在终端需要-o/--output-file才会写入文件。导出后如何使用pylock.toml导出的文件可以直接作为uv pip的安装输入见 项目结构文档$ uv pip sync pylock.toml或$ uv pip install -r pylock.toml注意两者语义不同uv pip sync使环境精确匹配锁文件会移除多余包适合追求可复现环境uv pip install不会移除锁文件中未声明的已安装包。限制与注意事项preview 状态preview 特性文档 说明pylock.toml支持目前处于 preview 阶段。在 preview 期间用uv pip install指定pylock.toml文件时无需额外配置指定该文件本身即表示要使用该特性但会显示一条 preview 警告启用 preview 特性可消除该警告$ uv run --preview ... # 或 $ UV_PREVIEW1 uv run ...也可以在uv.toml或pyproject.toml的[tool.uv]表中配置preview-features true启用全部 preview 特性来消除警告。表达能力uv 的部分功能无法在pylock.toml中表达因此项目接口内部仍以uv.lock为准导出只用于对外集成。输出位置不带--output-file时结果只打印到 stdout不会生成文件——如果下游流程期望读取pylock.toml务必加上该参数。更多导出格式细节见 导出锁文件锁文件的创建与升级见 锁定与同步。【免费下载链接】uvAn extremely fast Python package and project manager, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/uv/uv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考