From 1a29501ff41b13adb3bbdab0becd6d3712de2380 Mon Sep 17 00:00:00 2001 From: TaurusXin Date: Fri, 6 Jun 2025 01:50:23 +0800 Subject: [PATCH] remove: title index --- content/post/087.python-uv/index.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/content/post/087.python-uv/index.md b/content/post/087.python-uv/index.md index 8e0a40f..80a5906 100644 --- a/content/post/087.python-uv/index.md +++ b/content/post/087.python-uv/index.md @@ -7,7 +7,7 @@ slug: "python-uv" date: "2025-06-06T00:55:00+0800" --- -## 1. 前言与介绍 +## 前言与介绍 Python 有一个生态明星公司 Astral Software,在这之前或许很多人已经用过了 ruff 这款 linter,在 GitHub 斩获 15k+ 星的 uv 横空出世三个月,技术圈已涌现上百篇测评。在这之前,我用过诸如 conda 或 poetry 等包管理器,最后还是回归到了 Python 自带的 venv,但在我使用 uv 一个月后,彻底抛弃了 venv。 @@ -24,15 +24,15 @@ uv 整体吸收了 Rust Cargo 的先进包管理经验,使得开发人员可 --- -## 2. 重新定义 Python 工作流 +## 重新定义 Python 工作流 -### 2.1 性能碾压背后的技术革命 +### 性能碾压背后的技术革命 - **Cargo式依赖解析**:基于 Rust 实现的 PubGrub 算法,比 pip 快 8-10 倍的依赖解析速度 - **跨平台缓存机制**:首次安装后依赖包全局缓存复用,实测 conda 环境重建速度提升 6 倍 - **统一工具链**:用 `uv pip` 替代pip,`uv venv` 管理虚拟环境,`uv run` 执行脚本 -### 2.2 多维度工具对比矩阵 +### 多维度工具对比矩阵 | 特性 | pip | Poetry | Conda | uv | |--------------------|-------|--------|-------|---------| @@ -44,9 +44,9 @@ uv 整体吸收了 Rust Cargo 的先进包管理经验,使得开发人员可 --- -## 3. 安装、卸载与换源 +## 安装、卸载与换源 -### 3.1 一行命令安装 +### 一行命令安装 uv 的安装非常简单,一行命令即可完成 @@ -58,7 +58,7 @@ curl -LsSf https://astral.sh/uv/install.sh | sh powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" ``` -### 3.2 卸载 +### 卸载 很多文章没有介绍如何卸载,其实非常简单,因为 uv 已经打包成为一个独立的二进制文件,只需移除删除缓存和 uv 本身即可 @@ -76,7 +76,7 @@ Remove-Item -Recurse -Force -Path $(uv python dir) Remove-Item -Recurse -Force -Path $(uv tool dir) ``` -### 3.3 更换 PyPI 源 +### 更换 PyPI 源 如果不做任何配置,uv 默认会使用 PyPI 官方源,如果你需要使用国内源,可以使用下面几种办法来更换源(默认都以清华源为例)。 @@ -98,9 +98,9 @@ default = true --- -## 4. 项目实战 +## 项目实战 -### 4.1 Python 版本管理 +### Python 版本管理 默认情况下,uv 会使用系统中内置的 Python 版本作为项目的 Python 解释器,如果你需要使用特定的 Python 版本,可以使用 `uv python` 命令来管理 Python 的版本,下面是 uv 提供的一系列命令 @@ -113,7 +113,7 @@ default = true | `uv python pin` | 将当前项目固定使用特定的 Python 版本 | | `uv python uninstall` | 卸载某个 Python 版本 | -### 4.2 从零到生产:快速依赖管理 +### 从零到生产:快速依赖管理 如果你主力管理依赖还是用的 pip,那么只需要在 pip 前面加上 uv 就可以了,`uv pip` 是一个兼容命令 @@ -203,7 +203,7 @@ if __name__ == '__main__': uv run main.py ``` -### 4.3 构建发行版及发布 +### 构建发行版及发布 使用以下命令构建您的包 @@ -238,7 +238,7 @@ uv publish | `uv publish` | 将项目发布到包索引(如 PyPI) | -## 5. 何时该拥抱uv +## 何时该拥抱 uv ✅ **推荐场景**: - 需要同时维护多个 Python 版本项目