很多人配置 Python 开发环境时,会遇到这些痛点:安装依赖慢、不同项目依赖互相污染、requirements.txt 难以稳定复现、团队里每个人装出来的版本不一致。
uv(Astral 出品)把「创建虚拟环境 + 安装依赖 + 锁定版本」做成一条顺滑流程,并且速度通常比传统 pip 更快。它的目标不是教你“黑魔法”,而是把环境管理变得可复制、可迁移、可审计。
最稳妥的做法是跟着官方文档走。这里给你两个可点击参考链接:
工具地址:https://github.com/astral-sh/uv
参考文档:https://docs.astral.sh/uv/
安装完成后,建议先在终端里验证版本:
uv --version
在你的项目文件夹中执行初始化(如果你已经有项目,也可以只做后续步骤):
uv init
接着创建虚拟环境:
uv venv
这一步会在项目中生成虚拟环境(具体目录和激活方式会因系统和配置不同而不同)。如果你习惯手动激活,也可以照常使用系统的 venv 激活命令;uv 的价值在于后续安装/锁定依赖的流程更统一。
日常最常见的三类操作分别是:添加依赖、按文件安装、以及从锁定文件复现环境。
添加依赖(并记录到项目配置)
uv add requests
uv add "pydantic>=2"
从 requirements.txt 安装(兼容现有项目迁移)
uv pip install -r requirements.txt
只做一次性临时安装(不想污染项目声明)
如果你只是临时试用某个库,建议放在独立的测试目录,或者用单独的虚拟环境;这样项目依赖声明会更干净。
团队协作或部署时,强烈建议把依赖锁定文件纳入版本控制。锁定的意义是:把当下解析到的具体版本固定下来,确保 CI/同事/未来的你都能复现同一套依赖。
常见流程是先同步/解析,再锁定(具体命令以你的项目形态为准):
uv lock
当你更新依赖后(比如升级某个库的主版本),再重新 lock 并跑一遍测试,确认兼容性。
1)优先在项目根目录操作:uv 的很多能力(如 add/lock)都围绕项目上下文。把命令写进 README,团队更好跟。
2)区分“运行时依赖”和“开发依赖”:比如 lint、format、测试框架属于开发依赖,单独管理会让线上环境更轻。
3)遇到网络慢先检查镜像/代理策略:不要频繁改系统全局配置,建议在团队内形成统一的安装方式和网络策略(尤其是 Windows)。
4)把关键命令写成脚本:例如把初始化、安装、测试封装为一两条命令,减少新人上手成本。
如果你希望快速落地,可以从下面这套最小流程开始:
uv init
uv venv
uv add requests
uv lock
最后,建议在 README 里写清楚:如何创建环境、如何安装依赖、以及 CI 如何复现。