使用 uv 导出依赖文件,核心命令是 uv export。该工具会自动解析项目当前的虚拟环境或锁文件,将依赖关系输出为标准的 requirements.txt 格式。默认情况下,它会包含所有直接和间接依赖,并锁定具体版本号。若需仅导出当前环境的包而不包含项目本身的元数据,可配合 --no-emit-project 参数使用。

uv export 如何生成标准依赖列表
uv export 通过读取 uv.lock 文件来确保导出的依赖版本与本地开发环境完全一致。它生成的内容遵循 PEP 508 规范,可以直接被 pip install -r requirements.txt 识别。执行该命令后,终端会打印出完整的依赖树,包括包名、版本号和必要的约束条件(如平台标记)。

uv export --no-emit-project > requirements.txt pip install -r requirements.txt
上述代码展示了从导出到安装的标准流程。首先运行 uv export 并将输出重定向到 requirements.txt 文件中。接着,使用标准的 pip 命令安装这些依赖。这种方式确保了生产环境与开发环境的依赖一致性,避免了因版本漂移导致的问题。
立即学习“Python免费学习笔记(深入)”;
如何过滤特定类型的依赖项
在实际项目中,有时不需要导出所有依赖,例如只想查看测试依赖或排除某些组。可以通过 --group 参数指定特定的依赖组,或者使用 --no-dev 排除开发依赖。此外,--format 参数允许切换输出格式,目前主要支持 requirements-txt 和 json。这种灵活性使得 uv 能够适应不同的 CI/CD 场景或镜像构建需求。

uv export --group test --no-dev > test_requirements.txt uv export --format json > deps.json
这里演示了两种常见的过滤场景。第一个命令仅导出名为 test 的依赖组,并排除所有开发依赖,结果保存为 test_requirements.txt。第二个命令将依赖信息以 JSON 格式导出,便于程序化处理或集成到其他监控工具中。用户可根据实际需求组合这些参数,以获得最精确的依赖列表。
导出时如何处理平台特定的依赖标记
当项目包含针对特定操作系统或 Python 版本的依赖时,uv export 会在输出中保留这些平台标记(如 sys_platform == 'win32')。这些标记对于 pip 正确安装至关重要,但在某些轻量级环境中可能被视为冗余。用户可以通过 --no-emit-url 或 --no-emit-index-url 控制索引 URL 的输出,但平台标记通常由解析器自动处理,无需手动干预。理解这一点有助于避免在跨平台部署时出现依赖解析错误。


















