告别 pip!用 Rust 写的 uv 把 Python 包管理卷到 100 倍速


温馨提示:文末有「一键迁移」脚本,直接复制即可把老项目无痛搬进 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 '优快云 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 工具pipxuv tool
单文件脚本没有标准做法官方支持

uv 目前还在高速迭代,官方 Roadmap 已经放出 workspace / publish 等大招。趁早上车,提 issue 还能跟 Astral 大佬直接对线~


如果本文帮到了你,记得点个赞/收藏/转发!
评论区欢迎贴出你的 time uv pip install 截图,让大家一起感受 100× 的快感!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值