ITPub博客

首页 > 应用开发 > Python > 一个用 Rust 编写的、速度极快的 Python 包和项目管理器

一个用 Rust 编写的、速度极快的 Python 包和项目管理器

原创 Python 作者:BugShare 时间:2026-04-18 19:59:30 0 删除 编辑

一个用 Rust 编写的、速度极快的 Python 包和项目管理器。

  • 全面替代 pip、pip-tools、pipx等工具
  • 速度比 pip 快 10–100 倍
  • 支持通用锁定文件、Cargo 风格工作空间、内联依赖元数据
  • 安装和管理 Python 版本
  • 运行与安装以 Python 包形式发布的工具
  • 提供与 pip 兼容的命令行,性能更高
  • 全局缓存,依赖去重,节省磁盘
  • 无需 Rust 或 Python,通过 curl 即可安装
  • 支持 macOS、Linux、Windows

316150503-03aa9163-1c79-4a87-a31d-7a9311ed9310.svg

安装

支持 macOS、Linux、Windows。

# Homebrew
brew install uv
# macOS & Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# wget -qO- https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

自动补全

启用 uv 命令的 shell 自动补全功能:

# bash
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
# zsh
echo 'eval "$(uv generate-shell-completion zsh)"' >> ~/.zshrc
# fish
echo 'uv generate-shell-completion fish | source' > ~/.config/fish/completions/uv.fish
# PowerShell
if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}
Add-Content -Path $PROFILE -Value '(& uv generate-shell-completion powershell) | Out-String | Invoke-Expression'

然后重启 shell 或加载 shell 配置文件。

镜像源

国内镜像源:

# 安装依赖时指定
uv sync --index-url https://pypi.tuna.tsinghua.edu.cn/simple
# uv 多源配置(pyproject.toml)
[[tool.uv.index]]
url = "https://mirrors.ustc.edu.cn/pypi/simple"
default = true
[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple"
[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"

使用

Python 管理

安装和管理 Python。

# ==安装 Python==
## 安装最新版本
uv python install
## 安装特定版本
uv python install 3.12
## 重新安装(重新安装所有)
uv python install --reinstall
# ==查看 Python==
## 查看可用和已安装
uv python list
# 仅显示已安装的
uv python list --only-installed
# ==查找 Python==
## 查找已安装的 Python 版本
uv python find
## 查找大于 3.11 Python 版本
uv python find '>=3.11'
## 仅查找系统 Python 解释器
uv python find --system
# ==升级 Python==
# 升级到最新受支持的补丁版本
uv python upgrade 3.12
# 升级所有
uv python upgrade
# ==锁定到特定的 Python 版本==
# 当前项目锁定为使用特定的 Python 版本(.python-version)
uv python pin
# 在用户配置目录中创建全局文件
uv python pin --global
# ==卸载 Python==
# 卸载 Python 版本
uv python uninstall 3.12
# 卸载所有
uv python uninstall --all

项目

创建和开发 Python 项目

# 初始化项目
## 最新 Python 版本初始化
uv init
## 指定 Python 版本初始化
uv init --python 3.12
# ==管理依赖==
## 添加生产依赖
uv add requests
## 添加开发依赖
uv add --dev pytest
## 从requirements.txt文件迁移
uv add -r requirements.txt -c constraints.txt
## 移除依赖 
uv remove requests
## 同步依赖
uv sync
## 依赖项锁定文件
uv lock
## 升级软件包
uv lock --upgrade-package requests
# ==项目命令==
## 在项目环境中运行命令
uv run
# #查看项目的依赖关系树
uv tree
## 将项目构建到分发存档中
uv build
## 将项目发布到软件包索引
uv publish

项目结构

.
├── .venv
│    ├── bin
│    ├── lib
│    └── pyvenv.cfg
├── .python-version
├── README.md
├── main.py
├── pyproject.toml
└── uv.lock
  • pyproject.toml:项目的元数据
  • .python-version:项目的 Python 版本
  • .venv:项目的虚拟环境(隔离)
  • uv.lock:跨平台的锁定文件,项目依赖项(已安装的依赖版本)

虚拟环境

# ==创建虚拟环境==
## 默认
uv venv [.venv]
## 指定版本
uv venv --python 3.12
# ==激活环境==
## macOS/Linux
source .venv/bin/activate
## Windows
.venv\Scripts\activate
## 退出虚拟环境
deactivate
# ==替换pip==
## 将软件包安装到当前环境中
uv pip install
## 显示已安装软件包的详细信息
uv pip show
## 列出已安装的软件包及其版本
uv pip freeze
## 检查当前环境中是否安装了兼容的软件包
uv pip check
## 列出已安装的软件包
uv pip list
## 卸载软件包
uv pip uninstall
## 查看环境的依赖关系树
uv pip tree

脚本

执行 Python 脚本。

# 运行脚本
uv run main.py
# 向脚本添加依赖项
uv add --script main.py requests
# 移除脚本中的依赖项
uv remove --script main.py

工具

运行和安装发布到 Python 包索引的工具,例如ruff或black。

# 在临时环境中运行工具
uvx/ uv tool run
# 安装一个用户级工具
uv tool install
# 卸载工具
uv tool uninstall
# 列出已安装的工具
uv tool list
# 更新 shell 以包含工具可执行文件
uv tool update-shell

管理检查

uv 的状态,例如缓存、存储目录或执行自我更新:

# 删除缓存条目
uv cache clean
# 删除过期的缓存条目
uv cache prune
# 显示 UV 缓存目录路径
uv cache dir
# 显示 UV 工具目录路径
uv tool dir
# 显示已安装的 Python 版本路径
uv python dir
# 将 uv 更新到最新版本
uv self update

卸载

如果需要从系统中卸载 uv,请按照以下步骤操作:

  1. 清理已存储的数据(可选):

`` shell    uv cache clean    rm -r "$(uv python dir)"    rm -r "$(uv tool dir)"    ``

  1. 删除 uv、uvx 和 uvw 二进制文件:

```shell

Homebrew

brew uninstall uv

macOS and Linux

rm ~/.local/bin/uv ~/.local/bin/uvx

Windows

rm $HOME\.local\bin\uv.exe    rm $HOME\.local\bin\uvx.exe    rm $HOME\.local\bin\uvw.exe    ```

对比

| 工具           | 功能                                                         | 优点                                                   | 缺点                                   | 适合场景                                 |

| -------------- | :----------------------------------------------------------- | ------------------------------------------------------ | -------------------------------------- | ---------------------------------------- |

| virtualenv | 仅创建独立的 Python 环境                                     | 轻量,简单,灵活                                       | 依赖管理需要手动配置                   | 适合虚拟环境的简单项目                   |

| pipenv     | 自动管理虚拟环境及依赖                                       | 管理包依赖、虚拟环境统一,锁定依赖                     | 较为重,部分情况下性能较差             | 适合现代 Python 项目,需要依赖锁定的项目 |

| miniconda  | Python 和其他语言的环境管理工具                              | 支持多语言包管理,特别适合科学计算和数据分析           | 安装包速度较慢,体积较大               | 适合需要跨语言支持的科学计算或数据项目   |

| uv         | 高效的环境、依赖管理工具,提供 Python 版本管理及脚本运行等功能 | 更快的性能,跨平台支持,自动化的依赖管理,通用锁定文件 | 新工具,生态尚不成熟,可能会有不稳定性 | 适合需要高效管理、项目复杂度较高的开发者 |

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047890/viewspace-3116351/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2025-10-18

  • 博文量
    63
  • 访问量
    62983