温馨提示:文末有「一键迁移」脚本,直接复制即可把老项目无痛搬进 uv!
1. 为什么我又要换工具?
相信不少小伙伴跟我一样,日常被 pip / pip-tools / pipx / poetry / pyenv / virtualenv 轮番毒打:
- 依赖锁文件永远对不齐;
- 每次 CI 里
pip install就像抽盲盒; - 多版本 Python 切来切去,PATH 先崩为敬。
直到我遇见了 uv —— Astral 用 Rust 撸的一把瑞士军刀,官方 benchmark 显示它比 pip 快了 10–100×,而且一颗二进制就能干掉上面所有工具。
2. 30 秒安装
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 --help 看到满屏子命令,你就知道自己赚到了。
3. 新项目的正确姿势
一行命令创建带虚拟环境的项目:
uv init myproj && cd myproj
加依赖快到飞起:
uv add requests rich
uv 会:
- 秒级解析依赖树;
- 生成跨平台的
uv.lock; - 把解释器+依赖一次性装进
.venv。
想跑脚本?
uv run python main.py
4. 单文件脚本也能有锁文件
很多时候就写个小脚本,不想整项目?
把依赖写在文件头注释里即可:
# /// script
# dependencies = ["requests"]
# ///
import requests
print(requests.get("https://astral.sh"))
然后:
uv add --script demo.py requests # 自动生成 metadata
uv run demo.py # 首次运行自动装依赖
妈妈再也不用担心我忘记 requirements.txt!
5. pip 用户无痛迁移
不想改习惯?直接 uv pip 全家桶:
# 以前
pip install -r requirements.txt
# 现在
uv pip sync requirements.txt # 秒同步
# 以前
pip-compile requirements.in
# 现在
uv pip compile requirements.in --universal -o requirements.txt
CI 里把 pip install 换成 uv pip install,构建时间直接砍半。
6. 多版本 Python 一键切换
# 一口气装好
uv python install 3.8 3.11 3.12
# 当前目录固定版本
uv python pin 3.11
想临时用别的版本跑脚本?
uv run --python 3.8 python -V
7. 工具箱场景:pipx 说再见
一行命令体验即用即走的 CLI 工具:
uvx pycowsay '优快云 666~'
永久安装:
uv tool install ruff
ruff --version # 全局可用,自动软链到 ~/.cargo/bin
8. 一键迁移老项目脚本
把下面内容保存为 migrate.sh,扔到旧仓库执行即可:
#!/usr/bin/env bash
set -e
# 创建 uv 项目骨架
uv init .uv-tmp
mv .uv-tmp/pyproject.toml .
rm -rf .uv-tmp
# 把 requirements*.txt 全部吸进来
for f in requirements*.txt; do
[[ -f $f ]] && uv add $(grep -E '^[A-Za-z]' $f)
done
# 如果原来用 setup.py / setup.cfg 再跑一行
# uv add --editable .
uv lock
echo "迁移完成!记得把 .venv 加入 .gitignore"
9. 总结 & 展望
| 功能 | 老方案 (pip+一堆工具) | 新方案 (uv) |
|---|---|---|
| 安装速度 | 随缘 | 10–100× |
| 锁文件 | requirements.txt 人工维护 | 自动跨平台 lock |
| Python 版本管理 | pyenv + virtualenv | 内置 |
| CLI 工具 | pipx | uv tool |
| 单文件脚本 | 没有标准做法 | 官方支持 |
uv 目前还在高速迭代,官方 Roadmap 已经放出 workspace / publish 等大招。趁早上车,提 issue 还能跟 Astral 大佬直接对线~
如果本文帮到了你,记得点个赞/收藏/转发!
评论区欢迎贴出你的 time uv pip install 截图,让大家一起感受 100× 的快感!

被折叠的 条评论
为什么被折叠?



