【强烈推荐】uv 安装多个 Python 版本与使用方法全攻略(替代 pyenv + venv + pip)

【强烈推荐】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 = pyenv + venv + pip 的高速合体版

uv 的核心优势

  • 🚀 超快(Rust 编写)
  • ✅ 安装多个 Python 版本(不依赖系统 Python)
  • ✅ 创建和管理虚拟环境
  • ✅ 完全替代 pip
  • ✅ 单一二进制文件,无复杂依赖
  • ✅ 与 VS Code / PyCharm 完美兼容

二、安装 uv(Linux / Ubuntu)

方式一:官方推荐(最简单)

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

安装完成后重新加载环境变量:

source ~/.bashrc 

验证是否安装成功:

uv --version 

方式二:使用 Cargo(不推荐新手)

cargo install uv 

三、使用 uv 安装 Python 各种版本(重点)

1️⃣ 查看可安装的 Python 版本

uv python list 

示例输出:

3.8.18 3.9.19 3.10.14 3.11.9 3.12.3 3.13.0 

2️⃣ 安装指定 Python 版本

安装 Python 3.12(推荐)
uv python install3.12
安装多个版本(可共存)
uv python install3.10 uv python install3.11 uv python install3.13

⚠️ 不会覆盖系统自带 Python


3️⃣ 查看已安装的 Python 版本

uv python list --installed 

4️⃣ Python 安装目录说明

~/.local/share/uv/python/ 

每个 Python 版本都是完全独立的目录,互不干扰。


四、使用 uv 创建虚拟环境(核心)

1️⃣ 在项目目录创建虚拟环境

cd your_project uv venv 

默认行为:

  • 使用最新 Python
  • 创建 .venv 目录

2️⃣ 指定 Python 版本创建虚拟环境(推荐)

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

📌 推荐统一使用 .venv 作为虚拟环境目录名


3️⃣ 激活虚拟环境

source .venv/bin/activate 

出现:

(.venv) 

表示激活成功。


4️⃣ 退出虚拟环境

deactivate 

五、uv 替代 pip 的用法(非常快)

1️⃣ 安装依赖

uv pip install requests flask 

2️⃣ 从 requirements.txt 安装

uv pip install -r requirements.txt 

3️⃣ 查看已安装的包

uv pip list 

4️⃣ 生成 requirements.txt

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 的高级用法

1️⃣ 不激活环境直接运行脚本

uv run python script.py 

或指定 Python 版本:

uv run --python=3.12 python script.py 

2️⃣ uvx:临时运行工具(神器)

uvx black . uvx ruff check . uvx pytest 

特点:

  • 不安装到环境
  • 用完即走
  • 非常适合 CI / 本地格式化

八、uv 与 pyenv / venv 对比

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

新项目强烈推荐直接使用 uv


九、常见问题汇总

1️⃣ IDE 找不到 Python 解释器

手动指定:

项目目录/.venv/bin/python 

2️⃣ uv venv 创建失败

确认 Python 是否已安装:

uv python list --installed 

3️⃣ Ubuntu 20.04 没有 Python 3.12?

uv 自带官方构建版本,不依赖系统仓库,可放心使用。


十、总结

  • ✅ uv 是目前最先进、最简洁的 Python 工具链
  • ✅ 完美替代 pyenv + venv + pip
  • ✅ 特别适合新项目和多 Python 版本开发
一句话建议:以后新项目,直接用 uv,不要再折腾 pyenv 了。

Read more

图的寻路算法详解:基于深度优先搜索(DFS)的实现

图的寻路算法详解:基于深度优先搜索(DFS)的实现

图的寻路算法详解:基于深度优先搜索DFS的实现 * 一、寻路算法概述 * DFS寻路示例 * 二、算法核心思想 * 数据结构设计 * 三、算法实现详解 * 1. 核心数据结构 * 2. 构造函数初始化 * 3. DFS实现 * 4. 路径查询方法 * 四、完整代码实现 * 五、算法测试与应用 * 测试代码 * 输出结果 * 六、算法分析与优化 * 时间复杂度分析 * 空间复杂度 * 优化方向 * 七、DFS寻路与BFS寻路对比 * 八、实际应用场景 * 九、总结 🌺The Begin🌺点点关注,收藏不迷路🌺 一、寻路算法概述 图的寻路算法是图论中的基础算法之一,用于找到从一个顶点到另一个顶点的路径。深度优先搜索(DFS)是实现寻路算法的一种有效方法,它沿着图的深度方向尽可能远的搜索路径。 DFS寻路示例 0123456 从顶点0到顶点6的DFS路径可能是:

By Ne0inhk
Flutter 三方库 libsignal 的鸿蒙化适配指南 - 实现 Signal 协议加密通信、双大鼠(Double Ratchet)算法与前向安全性保障

Flutter 三方库 libsignal 的鸿蒙化适配指南 - 实现 Signal 协议加密通信、双大鼠(Double Ratchet)算法与前向安全性保障

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 libsignal 的鸿蒙化适配指南 - 实现 Signal 协议加密通信、双大鼠(Double Ratchet)算法与前向安全性保障 前言 在 Flutter for OpenHarmony 的高度安全通信领域,Signal 协议是目前全球公认的即时通讯加密标准。libsignal 是 Signal 协议的核心 Dart 实现。它能够为鸿蒙应用提供从身份认证到会话加密的全套解决方案,确保每一个字节的通信都具备前向安全性(Forward Secrecy)。本文将深入解析如何在鸿蒙端利用该库构建极致安全的加密通信能力。 一、原理解析 / 概念介绍 1.1 基础原理 Signal 协议的核心在于“双大鼠(Double Ratchet)”算法。它结合了 Diffie-Hellman

By Ne0inhk

优选算法——位运算

👇作者其它专栏 《数据结构与算法》《算法》《C++起始之路》 1.前要知识 《位操作符的妙用》 2.相关题解 2.1判定字符是否唯一 算法思路: 利用【位图】的思想,每一个【比特位】代表一个【字符】,一个int类型的变量的32位足够表示所有的小写字母。比特位里若为0,表示这个字符没有出现过;若为1,表示该字符出现过。 可以用一个【整数】来充当【哈希表】。 class Solution { public: bool isUnique(string astr) { //利用鸽巢原理优化 if(astr.size()>26) return false; int bitmap=0; for(auto i:

By Ne0inhk
【排序算法全家桶 Level 3】交换排序:从冒泡优化到快排四重奏

【排序算法全家桶 Level 3】交换排序:从冒泡优化到快排四重奏

🏠 个人主页:EXtreme35 📚 个人专栏: 专栏名称专栏主题简述《C语言》C语言基础、语法解析与实战应用《数据结构》线性表、树、图等核心数据结构详解《题解思维》算法思路、解题技巧与高效编程实践 目录 * 一、 冒泡排序 * 1.1 算法思想:气泡升腾的奥秘 * 1.2 为什么你的冒泡排序总是比别人慢? * 1.3 代码实现 * 二、快速排序 * 2.1 初始版本:Hoare 版 * 2.1.1 初始代码 * 2.1.2 优化一:三数取中 * 2.1.2 优化二:小区间优化 * 2.2

By Ne0inhk