一个用 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-cirm https://astral.sh/uv/install.ps1 | iex自动补全启用 uv 命令的 shell 自动补全功能# bashechoeval $(uv generate-shell-completion bash)~/.bashrc# zshechoeval $(uv generate-shell-completion zsh)~/.zshrc# fishechouv 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]]urlhttps://mirrors.ustc.edu.cn/pypi/simpledefaulttrue[[tool.uv.index]]urlhttps://mirrors.aliyun.com/pypi/simple[[tool.uv.index]]urlhttps://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 pythonfind3.11## 仅查找系统 Python 解释器uv pythonfind--system# 升级 Python# 升级到最新受支持的补丁版本uv python upgrade3.12# 升级所有uv python upgrade# 锁定到特定的 Python 版本# 当前项目锁定为使用特定的 Python 版本.python-versionuv 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.lockpyproject.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请按照以下步骤操作清理已存储的数据可选uv cache cleanrm-r$(uv pythondir)rm-r$(uv tooldir)删除 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 版本管理及脚本运行等功能更快的性能跨平台支持自动化的依赖管理通用锁定文件新工具生态尚不成熟可能会有不稳定性适合需要高效管理、项目复杂度较高的开发者