温馨提示:文末有「一键迁移」脚本,直接复制即可把老项目无痛搬进 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 会:

  1. 秒级解析依赖树;
  2. 生成跨平台的 uv.lock
  3. 把解释器+依赖一次性装进 .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 'CSDN 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× 的快感!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐