用 uv 管理 Python 开发环境:安装、虚拟环境、依赖锁定与提速(Windows/macOS 通用)

1. 先搞清楚:uv 解决什么问题

很多人配置 Python 开发环境时,会遇到这些痛点:安装依赖慢、不同项目依赖互相污染、requirements.txt 难以稳定复现、团队里每个人装出来的版本不一致。

uv(Astral 出品)把「创建虚拟环境 + 安装依赖 + 锁定版本」做成一条顺滑流程,并且速度通常比传统 pip 更快。它的目标不是教你“黑魔法”,而是把环境管理变得可复制、可迁移、可审计

2. 安装 uv(Windows / macOS)

最稳妥的做法是跟着官方文档走。这里给你两个可点击参考链接:

工具地址:https://github.com/astral-sh/uv

参考文档:https://docs.astral.sh/uv/

安装完成后,建议先在终端里验证版本:

uv --version

3. 用 uv 初始化一个项目(推荐:从项目目录开始)

在你的项目文件夹中执行初始化(如果你已经有项目,也可以只做后续步骤):

uv init

接着创建虚拟环境:

uv venv

这一步会在项目中生成虚拟环境(具体目录和激活方式会因系统和配置不同而不同)。如果你习惯手动激活,也可以照常使用系统的 venv 激活命令;uv 的价值在于后续安装/锁定依赖的流程更统一。

4. 安装依赖:替代 pip 的高频操作

日常最常见的三类操作分别是:添加依赖、按文件安装、以及从锁定文件复现环境。

添加依赖(并记录到项目配置)

uv add requests

uv add "pydantic>=2"

从 requirements.txt 安装(兼容现有项目迁移)

uv pip install -r requirements.txt

只做一次性临时安装(不想污染项目声明)

如果你只是临时试用某个库,建议放在独立的测试目录,或者用单独的虚拟环境;这样项目依赖声明会更干净。

5. 锁定依赖:让“在我电脑上可以”变成“在哪都可以”

团队协作或部署时,强烈建议把依赖锁定文件纳入版本控制。锁定的意义是:把当下解析到的具体版本固定下来,确保 CI/同事/未来的你都能复现同一套依赖。

常见流程是先同步/解析,再锁定(具体命令以你的项目形态为准):

uv lock

当你更新依赖后(比如升级某个库的主版本),再重新 lock 并跑一遍测试,确认兼容性。

6. 常见踩坑与提效建议(实用)

1)优先在项目根目录操作:uv 的很多能力(如 add/lock)都围绕项目上下文。把命令写进 README,团队更好跟。

2)区分“运行时依赖”和“开发依赖”:比如 lint、format、测试框架属于开发依赖,单独管理会让线上环境更轻。

3)遇到网络慢先检查镜像/代理策略:不要频繁改系统全局配置,建议在团队内形成统一的安装方式和网络策略(尤其是 Windows)。

4)把关键命令写成脚本:例如把初始化、安装、测试封装为一两条命令,减少新人上手成本。

7. 一个可复制的“最小工作流”示例

如果你希望快速落地,可以从下面这套最小流程开始:

uv init

uv venv

uv add requests

uv lock

最后,建议在 README 里写清楚:如何创建环境、如何安装依赖、以及 CI 如何复现。

参考链接

https://docs.astral.sh/uv/

https://github.com/astral-sh/uv

用户评论 (0)

登录后参与讨论

立即登录 注册账号

暂无评论,快来抢沙发吧~

操作成功