[太多BUG,不建议使用]Python环境管理工具-uv
uv 是一个由 Astral 开发的现代化 Python 环境管理工具,旨在整合并取代传统的 pip、virtualenv、pyenv、poetry 等工具,提供极速、一体化的 Python 项目管理体验。
https://github.com/astral-sh/uv核心特性
- 极速性能:使用 Rust 编写,依赖解析和包安装速度比 pip 快 10–100 倍。
- 一体化功能:支持虚拟环境管理、依赖解析、包安装、构建、发布、Python 版本管理等。
- 跨平台兼容:支持 macOS、Linux 和 Windows,使用简单命令即可完成安装。
- 现代标准:基于
pyproject.toml文件,支持 lockfile 确保环境可复现。
安装与使用
安装
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS/Linux:
curl -Ls https://astral.sh/uv/install.sh | sh
安装完成后需重启终端。
基本用法
$ uv init example
Initialized project `example` at `/home/user/example`
$ cd example
$ uv add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
+ example==0.1.0 (from file:///home/user/example)
+ ruff==0.5.0
$ uv run ruff check
All checks passed!
$ uv lock
Resolved 2 packages in 0.33ms
$ uv sync
Resolved 2 packages in 0.70ms
Audited 1 package in 0.02ms同步环境(自动安装依赖并创建虚拟环境):
uv sync
运行脚本:
uv run python main.py
安装依赖:
uv pip install -r requirements.txt
创建虚拟环境:
uv venv
source .venv/bin/activate # macOS/Linux
.venv\Scripts\activate # Windows
初始化项目:
uv init my_project
cd my_project
与其他工具对比
| 工具 | 虚拟环境 | 依赖管理 | 构建发布 | Python 管理 | 性能 | 适用场景 |
|---|---|---|---|---|---|---|
| venv | ✅ | ❌ | ❌ | ❌ | 慢 | 简单脚本项目 |
| pipenv | ✅ | ✅ | ❌ | ❌ | 中 | 小型项目 |
| poetry | ✅ | ✅ | ✅ | ❌ | 中 | 模块化应用 |
| uv | ✅ | ✅ | ✅ | ✅ | 极快 | 全场景通用 |
典型使用场景
- 数据科学项目:快速创建隔离环境,管理复杂依赖。
- Web 开发:支持 Django、FastAPI 等框架的快速搭建。
- 多项目工作区:通过 workspace 功能管理多个相关项目。
总结
uv 是一个面向未来的 Python 环境管理工具,适合追求高性能和现代化工作流的开发者。无论是简单脚本还是复杂项目,uv 都能提供一致、高效的体验。
配置镜像
是的,uv 不会自动读取 /etc/pip.conf 或 ~/.pip/pip.conf 里的镜像配置。uv 使用自己的配置机制,默认从 PyPI 官方源下载。
✅ 让 uv 使用国内镜像的几种方法
方法1:一次性指定
uv add paddleocr \
--index-url https://pypi.tuna.tsinghua.edu.cn/simple \
--extra-index-url https://pypi.org/simple
方法2:写进 uv 的配置文件(推荐)
uv 的配置文件是 ~/.config/uv/uv.toml(没有就新建):
# ~/.config/uv/uv.toml
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
extra-index-url = ["https://pypi.org/simple"]
保存后,再执行:
uv add paddleocr
就会全程走清华镜像。
方法3:环境变量(CI/容器常用)
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
export UV_EXTRA_INDEX_URL=https://pypi.org/simple
uv add paddleocr
✅ 验证是否生效
uv pip config show
或安装时观察输出 URL 是否已变成清华源。
没有config指令了。
📌 总结
/etc/pip.conf对uv无效。- 用
--index-url或~/.config/uv/uv.toml即可。