当前位置: 首页 > news >正文

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

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

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

安装

支持 macOS、Linux、Windows。

# Homebrewbrewinstalluv# macOS & Linuxcurl-LsSfhttps://astral.sh/uv/install.sh|sh# wget -qO- https://astral.sh/uv/install.sh | sh# Windowspowershell-ExecutionPolicyByPass-c"irm https://astral.sh/uv/install.ps1 | iex"

自动补全

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

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

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

镜像源

国内镜像源:

  • 中科大 USTC https://mirrors.ustc.edu.cn/pypi/simple
  • 阿里云 https://mirrors.aliyun.com/pypi/simple
  • 清华 TUNA https://pypi.tuna.tsinghua.edu.cn/simple
  • 华为云 https://repo.huaweicloud.com/repository/pypi/simple
# 安装依赖时指定uvsync--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 pythoninstall## 安装特定版本uv pythoninstall3.12## 重新安装(重新安装所有)uv pythoninstall--reinstall# ==查看 Python==## 查看可用和已安装uv python list# 仅显示已安装的uv python list --only-installed# ==查找 Python==## 查找已安装的 Python 版本uv pythonfind## 查找大于 3.11 Python 版本uv pythonfind'>=3.11'## 仅查找系统 Python 解释器uv pythonfind--system# ==升级 Python==# 升级到最新受支持的补丁版本uv python upgrade3.12# 升级所有uv python upgrade# ==锁定到特定的 Python 版本==# 当前项目锁定为使用特定的 Python 版本(.python-version)uv python pin# 在用户配置目录中创建全局文件uv python pin--global# ==卸载 Python==# 卸载 Python 版本uv python uninstall3.12# 卸载所有uv python uninstall--all

项目

创建和开发 Python 项目

# 初始化项目## 最新 Python 版本初始化uv init## 指定 Python 版本初始化uv init--python3.12# ==管理依赖==## 添加生产依赖uvaddrequests## 添加开发依赖uvadd--devpytest## 从requirements.txt文件迁移uvadd-rrequirements.txt-cconstraints.txt## 移除依赖uv remove requests## 同步依赖uvsync## 依赖项锁定文件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--python3.12# ==激活环境==## macOS/Linuxsource.venv/bin/activate## Windows.venv\Scripts\activate## 退出虚拟环境deactivate# ==替换pip==## 将软件包安装到当前环境中uv pipinstall## 显示已安装软件包的详细信息uv pip show## 列出已安装的软件包及其版本uv pip freeze## 检查当前环境中是否安装了兼容的软件包uv pip check## 列出已安装的软件包uv pip list## 卸载软件包uv pip uninstall## 查看环境的依赖关系树uv pip tree

脚本

执行 Python 脚本。

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

工具

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

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

管理检查

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

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

卸载

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

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

    uv cache cleanrm-r"$(uv pythondir)"rm-r"$(uv tooldir)"
  2. 删除 uv、uvx 和 uvw 二进制文件:

    # Homebrewbrew uninstall uv# macOS and Linuxrm~/.local/bin/uv ~/.local/bin/uvx# Windowsrm$HOME\.local\bin\uv.exerm$HOME\.local\bin\uvx.exerm$HOME\.local\bin\uvw.exe

对比

工具功能优点缺点适合场景
virtualenv仅创建独立的 Python 环境轻量,简单,灵活依赖管理需要手动配置适合虚拟环境的简单项目
pipenv自动管理虚拟环境及依赖管理包依赖、虚拟环境统一,锁定依赖较为重,部分情况下性能较差适合现代 Python 项目,需要依赖锁定的项目
minicondaPython 和其他语言的环境管理工具支持多语言包管理,特别适合科学计算和数据分析安装包速度较慢,体积较大适合需要跨语言支持的科学计算或数据项目
uv高效的环境、依赖管理工具,提供 Python 版本管理及脚本运行等功能更快的性能,跨平台支持,自动化的依赖管理,通用锁定文件新工具,生态尚不成熟,可能会有不稳定性适合需要高效管理、项目复杂度较高的开发者
http://www.cnnetsun.cn/news/1997571.html

相关文章:

  • OptiBPM应用:光功率耦合器
  • 西门子S7-200smart PLC通过RS485通讯读取绝对值伺服编码器当前位置并记录至机械...
  • Delphi 11发布前必做的5件事:从免费手册到早鸟优惠,手把手教你平滑升级
  • Stable-Diffusion-V1-5 作品集:探索不同采样器与模型架构的视觉差异
  • Python自动化文件批量格式转换工具
  • 易语言大漠脚本进阶:手把手封装一套防检测的‘智能鼠标’与‘记忆键盘’模块
  • EF Core 10向量搜索接入避坑清单,92%开发者踩过的7个隐性陷阱(含迁移脚本生成失效、HNSW索引自动降级等)
  • 小说下载器:拯救消失的文学,打造你的永久私人图书馆
  • ESP32北斗定位开发实战:从硬件连接到云端部署的完整指南
  • C# 14原生AOT部署Dify客户端全流程(含dify-sdk源码级patch与AOT友好的HttpClientFactory重构),仅限前500名开发者获取完整CI/CD流水线YAML
  • LVGL Snapshot功能实战:手把手教你将UI界面截图保存到SQLite数据库(附完整代码)
  • 数据驱动战斗:GBFR Logs如何让你的《碧蓝幻想:Relink》输出提升30%
  • BilibiliCacheVideoMerge:解锁B站离线观看的终极解决方案
  • M9A:你的《重返未来:1999》智能管家,彻底告别重复劳动
  • 51单片机数码管显示入门:从硬件接线到代码实战,手把手教你点亮第一个数字
  • 用Multisim复现电赛经典题:手把手教你搭建AD630锁定放大器(含噪声源仿真避坑)
  • 终极Adobe Illustrator自动化脚本集:7个免费工具让你设计效率翻倍
  • Redis 内存碎片率优化与分析方法
  • ViTPose实战指南:基于Vision Transformer的高效人体姿态估计方案
  • 从VOC到YOLO:一文搞懂目标检测数据集的‘翻译官’——XML转TXT格式转换详解
  • 南北阁Nanbeige 3B快速上手:MySQL数据库智能查询与报告生成
  • 从‘前照’到‘堆栈’:图解手机摄像头CMOS进化史,你的拍照清晰度是这么来的
  • Linux 串口故障排查指南:从嵌入式设备到工业系统的深度诊断
  • FPGA设计里时钟抖动(Jitter)太大?试试用PLL给你的系统时钟“美个颜”
  • 从学生信息管理到JSON文件读写:一个完整的C# WinForm CRUD小项目实战
  • 从一次‘IMetadataContainer’加载失败说起:深入理解.NET程序集版本绑定与NuGet包管理的那些坑
  • 给汽车软件工程师的V流程实战手册:从A样到SOP,如何用Doors、Matlab、Tessy搞定零部件开发
  • 设计师必备!Sketch MeaXure:告别手动标注,5分钟搞定设计规范的终极方案
  • 为什么你的Dify插件总被拒绝上架?——基于217个审核失败案例的合规性逆向分析报告
  • 用树莓派控制电源?PyVISA+SCPI硬件自动化全攻略(2024新版)