uv 安装多个 Python 版本与使用方法(替代 pyenv + venv + pip)
适用于:Ubuntu / Linux / macOS / Windows 本文环境:Ubuntu 20.04 Python 版本:3.8 ~ 3.13
一、uv 是什么?为什么要用 uv?
uv 是 Astral(ruff 作者)推出的新一代 Python 工具,目标是 现有的 Python 工具链。
uv 是由 Astral 推出的新一代 Python 工具,旨在统一并替代 pyenv、venv 和 pip。在 Ubuntu/Linux/macOS/Windows 上安装 uv 的方法,包括使用官方脚本或 Cargo。核心功能涵盖多版本 Python 管理、虚拟环境创建及依赖包管理。相比传统工具链,uv 基于 Rust 编写,速度更快且为单一二进制文件。文章提供了从安装、版本管理、虚拟环境配置到替代 pip 使用的完整流程,并对比了 uv 与 pyenv/venv 的差异,推荐在新项目中使用 uv 简化开发环境配置。
适用于:Ubuntu / Linux / macOS / Windows 本文环境:Ubuntu 20.04 Python 版本:3.8 ~ 3.13
uv 是 Astral(ruff 作者)推出的新一代 Python 工具,目标是 现有的 Python 工具链。
一句话总结:
uv = pyenv + venv + pip 的高速合体版
curl -LsSf https://astral.sh/uv/install.sh | sh
安装完成后重新加载环境变量:
source ~/.bashrc
验证是否安装成功:
uv --version
cargo install uv
uv python list
示例输出:
3.8.18 3.9.19 3.10.14 3.11.9 3.12.3 3.13.0
uv python install 3.12
uv python install 3.10
uv python install 3.11
uv python install 3.13
⚠️ 不会覆盖系统自带 Python
uv python list --installed
~/.local/share/uv/python/
每个 Python 版本都是完全独立的目录,互不干扰。
cd your_project
uv venv
默认行为:
.venv 目录uv venv --python=3.12 .venv
uv venv --python=3.10 .venv
📌 推荐统一使用 .venv 作为虚拟环境目录名
source .venv/bin/activate
出现:
(.venv)
表示激活成功。
deactivate
uv pip install requests flask
uv pip install -r requirements.txt
uv pip list
uv pip freeze > requirements.txt
mkdir my_project
cd my_project
# 创建 Python 3.12 虚拟环境
uv venv --python=3.12 .venv
# 激活环境
source .venv/bin/activate
# 安装依赖
uv pip install fastapi uvicorn
# 运行程序
python main.py
uv run python script.py
或指定 Python 版本:
uv run --python=3.12 python script.py
uvx black .
uvx ruff check .
uvx pytest
特点:
| 功能 | uv | pyenv | venv |
|---|---|---|---|
| 安装 Python | ✅ | ✅ | ❌ |
| 虚拟环境 | ✅ | ❌ | ✅ |
| pip 管理 | ✅ | ❌ | ❌ |
| 速度 | 🚀🚀🚀 | 慢 | 中 |
| 单工具 | ✅ | ❌ | ❌ |
✅ 新项目强烈推荐直接使用 uv
手动指定:
项目目录/.venv/bin/python
确认 Python 是否已安装:
uv python list --installed
uv 自带官方构建版本,不依赖系统仓库,可放心使用。
建议:以后新项目,直接用 uv。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online