Linux下载、安装uv-0.12.0(附安装包uv-x86_64-unknown-linux-gnu.tar.gz)

文章目录

1. uv 简介

uv 是 Astral 团队(也是 Ruff 的创建者)打造的极速 Python 包与项目管理器,使用 Rust 编写。由 Charlie Marsh 主导开发,uv 于 2024 年 2 月首次发布,最初作为 pip 的高性能替代品,随后在 2024 年 8 月扩展为全面的统一 Python 打包解决方案,被 Charlie Marsh 描述为"Cargo, for Python"。截至 2026 年初,uv 在 GitHub 上已获得超过 79,000 颗星,成为 Python 生态中最受瞩目的工具之一,并已占据 PyPI 超过 10% 的请求量。

uv 的设计目标是用一个工具统一 Python 生态中碎片化的工具链。一个 uv 即可替代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等众多工具。其核心特点包括:

  • 极速性能:比 pip 快 10-100 倍,得益于 Rust 编译的静态二进制、PubGrub/CDCL SAT 解析器、HTTP 范围请求、零拷贝反序列化等底层优化
  • 全面的项目管理 :类似 Cargo 的项目工作流(uv init、uv add、uv lock、uv sync、uv run),支持通用锁文件(universal lockfile)跨平台使用
  • Python 版本管理:自动下载、安装、切换 Python 版本,支持 CPython 和 PyPy
  • 单文件脚本执行 :支持内联依赖元数据(PEP 723),用 uv run script.py 即可在隔离环境中运行脚本
  • 工具管理 :类似 pipx 的工具安装和运行能力(uv tool install、uvx)
  • 兼容 pip 接口 :uv pip 子命令提供熟悉的 pip 兼容接口,零学习成本迁移
  • 工作空间:支持 Cargo 风格的多包仓库管理

uv 支持 macOS、Linux 和 Windows,无需预装 Rust 或 Python 即可通过 curl 或 pip 安装。

2. 0.12.0 版本亮点

uv 0.12.0 于 2026 年 7 月 28 日发布。此版本汇集了自 3 月 0.11.0 以来积累的大量改进,聚焦于正确性、安全性和规范兼容性。大多数用户无需修改即可升级。

重要变更

  • uv init 默认使用构建系统 :新创建的项目默认声明 [build-system](使用 uv 自研的 uv_build),采用 src/ 布局并包含 [project.scripts] 入口,项目可直接作为命令运行。如需旧版布局可使用 uv init --no-package
  • 预发布版本选择策略改进 :默认模式改为 if-necessary------优先选择稳定版本,仅在没有稳定候选版本时才回退到预发布版本。解决了传递依赖中预发布需求解析失败的问题
  • 更严格的哈希检查 :--require-hashes 指令现在真正启用哈希检查模式,拒绝仅有 MD5 哈希的依赖(MD5 不具备抗碰撞性)
  • 强化 Python 解释器保护 :拒绝可能覆盖虚拟环境解释器的 wheel 文件,包括大小写变体(如 Python)和通过 .data/scripts 路径绕过的文件

安全性增强

  • 移除不常见压缩格式支持 :拒绝 .tar.bz2、.tar.xz 等旧版源码分发包格式(遵循 PEP 625),缩小处理不受信任包时的攻击面
  • 证书覆盖更严格 :显式设置的 SSL_CERT_FILE / SSL_CERT_DIR 现在完全替换默认信任根,即使无法加载任何有效证书也会阻止 HTTPS 连接
  • 损坏符号链接检测 :发现损坏的 .venv 符号链接时立即报错,不再回退到祖先目录中的虚拟环境
  • uv venv --clear 需 --force :清除非虚拟环境目录前必须显式传递 --force,防止误删重要数据

稳定化功能

  • 兼容 TOML 1.0 的源码分发包 :uv_build 现在生成兼容 TOML 1.0 的 pyproject.toml,允许旧版 Python 构建前端消费使用新版 TOML 语法的项目
  • Unix 文件描述符限制自动调整:Linux 和 macOS 上自动提高软打开文件数限制(上限 1,048,576),减少文件描述符耗尽导致的故障

破坏性变更速览

  • uv python install 3.12 --reinstall 不再隐式升级到最新补丁版本(改用 --upgrade)
  • --upgrade-group 必须指定已存在的依赖组
  • --project 在 uv init 中不可用
  • 发布时跳过文件名非规范化的分发包
  • uv add 保留绝对路径形式

3. 获取安装包

如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/224F(内含 uv-x86_64-unknown-linux-gnu.tar.gz、README 中英对照、发布说明中英对照和 LICENSE)。

适用于 Linux x86_64(glibc)。

text 复制代码
Linux安装uv-0.12.0(uv-x86_64-unknown-linux-gnu).zip
├── uv-x86_64-unknown-linux-gnu.tar.gz
├── Linux安装uv-0.12.0(uv-x86_64-unknown-linux-gnu).pdf
├── README/
│   ├── README.md
│   └── README-中文版.md
├── 发布说明/
│   ├── RELEASE-NOTES.md
│   └── RELEASE-NOTES-中文版.md
├── LICENSE-MIT
└── LICENSE-APACHE

4. 快速开始

解压 uv-x86_64-unknown-linux-gnu.tar.gz,将 uv 可执行文件放入 PATH 中即可使用:

bash 复制代码
# 解压安装包
tar xzf uv-x86_64-unknown-linux-gnu.tar.gz

# 将 uv 移至系统路径(可选)
sudo mv uv /usr/local/bin/

# 验证安装
uv --version

常用命令

bash 复制代码
# 创建新项目
uv init my-project
cd my-project

# 添加依赖
uv add requests

# 运行项目
uv run python main.py

# 安装 Python 版本
uv python install 3.12

# 创建虚拟环境
uv venv

# 同步锁文件中的依赖
uv sync

# 编译 requirements 文件
uv pip compile requirements.in --universal --output-file requirements.txt

# 运行一次性工具
uvx ruff check .

# 更新 uv 自身
uv self update
相关推荐
不是万能的豆学长10 小时前
filetidy 文件整理助手:一键归类 + 规范重命名(Python 零依赖单文件工具)
大数据·开发语言·python·技术美术
gCode Teacher 格码致知11 小时前
Pandas教学-18:number与numeric的区别
python·pandas
梦想不只是梦与想14 小时前
Python 中subprocess 模块:执行外部命令
python·subprocess·调用外部命令
懂点Tech15 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
水饺编程18 小时前
第2章:Linux 基础,切换到超级用户
linux·c语言·汇编
便利店102418 小时前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
qetfw19 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
爱上纯净的蓝天19 小时前
不用云做 RAG:一个本地笔记问答工具的取舍与坑
python·开源·大模型·rag·本地部署
其实防守也摸鱼19 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
cspttty20 小时前
2027风险管理岗准备路线:数学与应用数学如何补齐金融、SQL与Python
开发语言·python·金融