用 uv 管理 Python 项目:一个工具打通从建项目到运行的全流程

举报
yd_228191225 发表于 2026/11/03 09:33:39 2026/11/03
【摘要】 本文介绍 Astral 出品、用 Rust 编写的 Python 包与项目管理工具 uv:它以一个工具覆盖建项目、加依赖、锁版本、同步环境、运行项目、管理 Python 版本和调用已发布工具等环节,并结合 pyproject.toml 与 uv.lock 说明一套清晰的日常工作流。

Python 开发中,环境与依赖管理常常分散在多个工具里。uv 由 Astral 出品,用 Rust 编写,定位为 Python 的包与项目管理工具,希望用一个工具覆盖以往需要多个工具完成的工作。
从零开始一个项目,可以先用 uv init 新建项目,并用 pyproject.toml 声明依赖。随后用 uv add 添加依赖,依赖信息会写入项目声明,而 uv lock 则生成 uv.lock,记录精确的解析结果。两者分工很清楚:前者说明项目需要什么,后者记录这次实际解析出的具体版本组合。
日常运行同样可以直接交给 uv:uv run 可以运行脚本或项目,uv sync 则按锁文件同步环境,让当前环境与锁文件保持一致。需要固定解析结果时,先用 uv lock 生成锁文件,再用 uv sync 同步,步骤清晰,也不容易遗漏。
Python 版本管理也是 uv 的一部分。uv python install 可以安装和管理 Python 版本,不必先为版本切换再找别的工具。对已经熟悉 pip 工作方式的人,uv pip 提供与 pip 兼容的包管理接口,可以在熟悉的用法下完成包的安装与管理,降低迁移的学习成本。
除了管理自己的项目,uv 还适合运行别人发布的工具。uvx,也就是 uv tool run,可以直接运行已发布的工具,而不必先把它装进当前项目环境。这样做的好处是工具与项目依赖互不干扰,用完即走,项目环境保持干净。
安装门槛也值得一提:uv 提供独立安装脚本,不需要事先装好 Python 或 Rust。对刚接触 Python 的读者来说,先装好一个工具,再用它创建项目、管理依赖和安装 Python 版本,顺序自然,不用先准备一整套前置环境。
总结来看,uv 的价值在于把建项目、加依赖、锁版本、同步环境、运行项目、管 Python 版本和运行工具串成一条线:用 uv init 起步,用 uv add 扩展依赖,用 uv lock 与 uv sync 固定和还原环境,用 uv run 推进日常开发,遇到现成工具就用 uvx 调用。把这套流程用熟,Python 项目的日常管理会更整齐,也更容易讲清楚和复现。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。