【强烈推荐】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

基于 Spring Boot 的 Web 三大核心交互案例精讲

基于 Spring Boot 的 Web 三大核心交互案例精讲

—知识点专栏——JavaEE专栏— 作为 Spring Boot 初学者,理解后端接口的编写和前端页面的交互至关重要。本文将通过三个经典的 Web 案例——表单提交、AJAX 登录与状态管理、以及 JSON 数据交互——带您掌握前后端联调的核心技巧和 Spring Boot 的关键注解。 1. 案例一:表单提交与参数绑定(计算求和) 本案例展示最基础、最传统的 Web 交互方式:HTML 表单提交。 1.1 后端代码:CalcController.java 使用 @RestController 简化接口编写,并通过方法参数接收表单数据。 packagecn.overthinker.springboot;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.

By Ne0inhk
openclaw新手入门指南:一文看懂环境搭建、模型配置与 WebUI 远程访问

openclaw新手入门指南:一文看懂环境搭建、模型配置与 WebUI 远程访问

目录 * 1. 基础设施层:OpenClaw 运行环境的初始化 * 2. 算力与模型层:蓝耘 MaaS 平台的接入配置 * 2.1 协议适配与 JSON 配置 * 3. 编排层:OpenClaw 初始化与 Onboarding 流程 * 3.1 模式选择与基础设置 * 3.2 模型提供商与应用集成策略 * 3.3 技能库(Skills)装载与服务启动 * 4. 网络架构与网关(Gateway)配置 * 4.1 网关暴露与安全策略 * 4.2 Web UI 远程访问与设备配对(Device Pairing) * 5. 高级模型编排与 JSON 配置深度解析

By Ne0inhk
【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

🌹欢迎来到《小5讲堂》🌹 🌹这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 👨💻 作者简介 🏆 荣誉头衔:2024博客之星Top14 | ZEEKLOG博客专家 | 阿里云专家博主 🎤 经历:曾多次进行线下演讲,亦是 ZEEKLOG内容合伙人 以及 新星优秀导师 💡 信念:“帮助别人,成长自己!” 🚀 技术领域:深耕全栈,精通 .NET Core (C#)、Python、Java,熟悉主流数据库 🤝 欢迎交流:无论是基础概念还是进阶实战,都欢迎与我探讨! 目录 * 前言 * 解决过程 * 一、错误场景还原 * 1.1 错误发生的位置 * 1.2 常见的触发场景 * 二、深入理解 Vue

By Ne0inhk

Linux内核IRQ子系统:核心数据结构深度解析 (基于 Linux 6.6)

引言:中断处理的挑战与抽象 在复杂的现代计算系统中,硬件设备(如网卡、磁盘、键盘)通过中断信号来通知 CPU 有事件需要处理。然而,不同架构(x86, ARM)、不同总线(PCIe, USB)和不同控制器(GIC, APIC, 8259)的中断机制千差万别。如果每个驱动都直接与底层硬件打交道,内核将变得极其臃肿且难以维护。 Linux IRQ 子系统的诞生就是为了解决这一复杂性。它通过一套精巧的、分层的数据结构和接口,向上为设备驱动提供统一、简单的中断注册和管理 API(如 request_irq),向下则通过可插拔的“中断控制器驱动”来适配各种硬件。这套系统的核心就是我们今天要深入剖析的几大数据结构。 更多及时精彩的linux内核子系统分析,请关注VX公众号:linux内核漫游手册. 1. irq_desc - 中断描述符:中断世界的“户口本” 定义位置:

By Ne0inhk