一个用 Rust 编写的、速度极快的 Python 包和项目管理器。
支持 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== ## 安装最新版本 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,请按照以下步骤操作:
``
shell uv cache clean rm -r "$(uv python dir)" rm -r "$(uv tool dir)" ``
```shell
brew uninstall uv
rm ~/.local/bin/uv ~/.local/bin/uvx
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/ ,如需转载,请注明出处,否则将追究法律责任。