跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

uv 安装多版本 Python 及虚拟环境使用指南(替代 pyenv + pip)

uv 工具的安装与核心用法。uv 是由 Astral 推出的高性能 Python 工具,旨在替代 pyenv、venv 和 pip 的组合。内容涵盖通过 curl 脚本快速安装、多版本 Python 的管理与切换、虚拟环境的创建与激活、以及使用 uv pip 进行依赖管理的完整流程。此外还对比了 uv 与传统工具的性能差异,提供了标准项目工作流示例和常见问题的解决方案。对于追求开发效率的团队,uv 能显著简化环境配置并提升构建速度。

Ne0发布于 2026/3/16更新于 2026/9/869 浏览

uv 安装多版本 Python 及虚拟环境使用指南

适用系统:Ubuntu / Linux / macOS / Windows 测试环境:Ubuntu 20.04, Python 3.8 ~ 3.13

一、为什么选择 uv?

uv 是 Astral(ruff 作者团队)推出的新一代 Python 工具,核心目标是统一并简化现有的 Python 开发流程。

简单来说,它试图整合 pyenv、venv 和 pip 的功能,同时利用 Rust 带来显著的性能提升。对于追求效率的开发者来说,这意味着更少的依赖配置和更快的执行速度。

核心优势

  • 极速:基于 Rust 编写,安装和运行速度远超传统工具。
  • 统一管理:支持在同一机器上安装和管理多个 Python 版本,互不干扰。
  • 全功能替代:内置虚拟环境管理,完全兼容 pip 命令。
  • 轻量级:单一二进制文件,无需复杂的环境依赖。
  • IDE 友好:与 VS Code、PyCharm 等主流编辑器完美集成。

二、安装 uv

方式一:官方脚本(推荐)

这是最快捷的方式,适用于大多数 Linux 和 macOS 用户。

curl -LsSf https://astral.sh/uv/install.sh | sh

安装完成后,记得刷新环境变量:

source ~/.bashrc

验证安装是否成功:

uv --version

方式二:Cargo 安装

如果你已经安装了 Rust,也可以通过 Cargo 直接安装,但通常不如官方脚本方便。

cargo install uv

三、管理 Python 版本

查看可用版本

在安装之前,我们可以先看看有哪些版本可供下载:

uv python list

输出示例:

3.8.18 3.9.19 3.10.14 3.11.9 3.12.3 3.13.0

安装指定版本

你可以按需安装特定版本,甚至一次性安装多个版本共存。

# 安装 Python 3.12
uv python install 3.12

# 批量安装多个版本
uv python install 3.10 3.11 3.13

⚠️ 注意:uv 安装的 Python 版本独立于系统自带版本,不会覆盖系统环境。

查看已安装版本

uv python list --installed

默认存储路径通常在 ~/.local/share/uv/python/,每个版本都有独立的目录结构。

四、创建与管理虚拟环境

创建虚拟环境

在项目目录下初始化虚拟环境非常简单:

cd your_project
uv venv

默认情况下,它会使用最新安装的 Python 版本,并在当前目录生成 .venv 文件夹。

指定 Python 版本

为了保持项目一致性,建议显式指定 Python 版本:

# 使用 Python 3.12
uv venv --python=3.12 .venv

# 使用 Python 3.10
uv venv --python=3.10 .venv

📌 建议:统一使用 .venv 作为虚拟环境目录名,便于团队协作识别。

激活与退出

# 激活环境
source .venv/bin/activate

# 激活后提示符会显示 (.venv)

# 退出环境
deprecate

五、包管理:替代 pip

uv 提供了与原生命令高度兼容的包管理接口,速度更快。

安装依赖

uv pip install requests flask

从 requirements.txt 安装

uv pip install -r requirements.txt

查看与导出

# 查看已安装包
uv pip list

# 导出为 requirements.txt
uv pip freeze > requirements.txt

六、标准项目工作流示例

下面是一个从零开始搭建项目的完整流程,供参考:

# 1. 创建项目目录
mkdir my_project
cd my_project

# 2. 创建 Python 3.12 虚拟环境
uv venv --python=3.12 .venv

# 3. 激活环境
source .venv/bin/activate

# 4. 安装核心依赖
uv pip install fastapi uvicorn

# 5. 运行程序
python main.py

七、高级用法

不激活环境直接运行脚本

有时候我们不想手动激活环境,可以直接用 uv run 执行:

# 使用默认环境
uv run python script.py

# 指定 Python 版本
uv run --python=3.12 python script.py

uvx:临时运行工具

uvx 允许你临时运行任何 Python 工具,无需预先安装到环境中,非常适合 CI 或一次性任务。

uvx black .
uvx ruff check .
uvx pytest

特点包括:不污染环境、用完即走、适合本地格式化检查。

八、对比总结

功能uvpyenvvenv
安装 Python✅✅❌
虚拟环境✅❌✅
pip 管理✅❌❌
速度🚀🚀🚀慢中
单工具✅❌❌

对于新项目,直接使用 uv 可以大幅减少环境配置的复杂度。

九、常见问题

IDE 找不到解释器

如果 VS Code 或 PyCharm 无法自动识别虚拟环境,请手动指向以下路径:

项目目录/.venv/bin/python

创建失败

若 uv venv 报错,请先确认目标 Python 版本是否已安装:

uv python list --installed

系统缺少 Python 3.12?

不用担心,uv 会从官方源拉取预编译的二进制包,不依赖系统仓库中的 Python 版本。

十、结语

uv 代表了 Python 工具链的未来方向,它将原本分散的工具整合成了一个高效的整体。虽然迁移成本极低,但对于新启动的项目,强烈建议直接采用 uv 来管理环境和依赖,告别繁琐的 pyenv 配置。

目录

  1. uv 安装多版本 Python 及虚拟环境使用指南
  2. 一、为什么选择 uv?
  3. 核心优势
  4. 二、安装 uv
  5. 方式一:官方脚本(推荐)
  6. 方式二:Cargo 安装
  7. 三、管理 Python 版本
  8. 查看可用版本
  9. 安装指定版本
  10. 安装 Python 3.12
  11. 批量安装多个版本
  12. 查看已安装版本
  13. 四、创建与管理虚拟环境
  14. 创建虚拟环境
  15. 指定 Python 版本
  16. 使用 Python 3.12
  17. 使用 Python 3.10
  18. 激活与退出
  19. 激活环境
  20. 激活后提示符会显示 (.venv)
  21. 退出环境
  22. 五、包管理:替代 pip
  23. 安装依赖
  24. 从 requirements.txt 安装
  25. 查看与导出
  26. 查看已安装包
  27. 导出为 requirements.txt
  28. 六、标准项目工作流示例
  29. 1. 创建项目目录
  30. 2. 创建 Python 3.12 虚拟环境
  31. 3. 激活环境
  32. 4. 安装核心依赖
  33. 5. 运行程序
  34. 七、高级用法
  35. 不激活环境直接运行脚本
  36. 使用默认环境
  37. 指定 Python 版本
  38. uvx:临时运行工具
  39. 八、对比总结
  40. 九、常见问题
  41. IDE 找不到解释器
  42. 创建失败
  43. 系统缺少 Python 3.12?
  44. 十、结语

更多推荐文章

查看全部
  • ZeroClaw Gateway + LM Studio + Reflex 本地 AI 管理面板搭建
  • C++与Python相互调用方法详解
  • 实战指南:如何设计去AI味的Prompt提升AIGC内容质量
  • YOLO26 实时目标检测:关键架构改进与性能基准测试
  • 低资源模型(7B)Prompt 高质量输出策略
  • 在鸿蒙游戏开发中接入 AI NPC 的体验与实践
  • Java 泛型详解:语法、擦除与通配符
  • C++ 指针与引用核心面试题详解
  • 昇腾 NPU 部署 CodeLlama 大模型实战指南
  • Linux 基础 IO 收官:库的构建与使用、进程地址空间及核心知识点
  • MySQL 视图与存储过程 DEFINER 详解
  • Java 基本语法
  • 基于 MATLAB 的动态环境下多无人机系统协同路径规划与防撞
  • 基于C++11手写Promise实现
  • VSCode Copilot 接入 OpenAI 兼容自定义模型方案
  • 大厂 Git 提交规范实践指南
  • 强化学习框架 VeRL 深度解析:架构、调试与应用实战
  • Java 并发编程:Volatile 关键字底层原理与最佳实践
  • Python 爬虫基础与实战指南
  • Spring AOP 核心概念、注解与底层原理实战

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online