告别漫长的 pip install:用 uv 在 10 分钟内管好 Python 依赖
做 Python 开发这些年,相信很多人都经历过这样的时刻:新建一个项目,先 python -m venv .venv,再 source .venv/bin/activate,然后 pip install -r requirements.txt,眼看着终端一行行滚动,十几分钟过去了,依赖还没装完。换台机器、换个 Python 版本,又要重来一遍。
有没有更快、更省心的办法?有。Astral 团队推出的 uv,正在改变 Python 的包管理体验。它用 Rust 编写,安装依赖的速度比 pip 快 10 到 100 倍,还把虚拟环境、依赖锁定、Python 版本管理揉进了一套统一的命令里。
一、安装:一行命令的事
uv 的安装非常轻量,不需要预先装好 Python。Linux / macOS 一条命令:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows 用户用 PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
装完运行 uv --version,看到版本号就说明成功了。
二、初始化项目:告别手动建 venv
进入项目目录,一条命令完成初始化:
uv init my-project
cd my-project
uv 会自动生成 pyproject.toml、README 和示例代码。更贴心的是,它会自动下载并固定合适的 Python 版本,统一存放在自己的目录里管理——不同项目用不同 Python 版本,再也不用折腾 pyenv 了。
三、添加依赖:快得不像话
以前 pip install requests 可能要等半天,现在:
uv add requests
uv 会并行解析、并行下载,几秒钟完成。同时它会自动更新 pyproject.toml,并生成 uv.lock 锁定文件,记录每个依赖的精确版本和哈希值。团队协作时,别人拿到 uv.lock 就能复刻出完全一致的环境,告别“在我机器上明明是好的”。
删除依赖也很直观:uv remove requests。
四、运行代码:不用手动激活环境
用 uv 管理的项目,运行脚本不需要先激活虚拟环境:
uv run main.py
uv run pytest
uv run 会自动使用项目关联的虚拟环境;如果依赖还没装,它还会先按锁定文件同步好再运行,一条命令全搞定。
五、常用命令速查
| 需求 | 命令 |
|---|---|
| 初始化项目 | uv init |
| 添加依赖 | uv add <包名> |
| 同步环境 | uv sync |
| 运行脚本 | uv run <脚本> |
| 查看已安装包 | uv pip list |
| 固定 Python 版本 | uv python pin 3.12 |
uv sync 特别值得一提:CI 流水线里 checkout 代码后,一条 uv sync 就能按 uv.lock 还原环境,又快又稳。
六、老项目迁移三步走
已有项目想迁移?很简单:
- 在现有目录执行
uv init --bare生成配置(或手写pyproject.toml); uv add -r requirements.txt把旧依赖一次性导入;- 跑一遍测试,确认无误后删掉旧的 venv。
整个过程不影响原来的代码,风险很低。
结语
工具的价值,在于把重复劳动压缩到最少。uv 把“建环境、装依赖、锁版本、跑代码”串成一条顺滑的流水线,省下的时间,足够多喝两杯咖啡,或者早点下班。不妨在下一个新项目里试试它——你可能会和我一样,再也回不去 pip 了。
- 点赞
- 收藏
- 关注作者
评论(0)