一个用 Rust 写的 Python 包和项目管理器
先看它自己怎么吹的~
pip
pip-tools
pipx
poetry
pyenv
twine
virtualenv
以及更多。pip
快 10-100 倍。# Linux & MacOS
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# 寻找当前可用python解释器
uv python find
# 寻找可安装python解释器
uv python list
# 下载python解释器
uv python install 3.13
# 卸载 Python 版本
uv python uninstall
# 固定 Python 版本
uv python pin 3.13
# 安装虚拟环境,默认名字 .venv
uv venv --python 3.11
# 添加依赖
uv add requests
# 移除依赖
uv remove requests
# 同步依赖
uv sync
# 安装依赖:如果 requirements.txt 或 pyproject.toml 中定义了新依赖,uv sync 会安装它们
# 卸载多余依赖:如果当前环境中存在未在 requirements.txt 或 pyproject.toml 中定义的依赖,
# uv sync 会自动删除它们,以保持环境的干净
uv run
命令的作用是在 uv 管理的虚拟环境中运行命令
uv run
的主要功能
uv venv
创建的环境中执行命令,而不需要手动 source venv/bin/activate
python
、pytest
、flask run
等bash
、sh
等即,uv run 的作用是激活当前 uv 项目的虚拟环境
uvx
的作用是在 UV 虚拟环境中运行可执行文件,相当于 uv run
,但专门用于运行可执行二进制文件
uvx black .
uvx ruff check .
uvx mypy my_script.py
什么时候用 uvx
?
black
、ruff
、mypy
、pyright
).python-version
pyproject.toml
uv.lock
.python-version
:uv 使用的 python 版本
pyproject.toml
: uv 的元数据信息
uv.lock
:用于确保所有依赖的版本一致,避免团队或生产环境中的版本差异问题。
# 修改 pip 源
# 添加到 pyproject.toml文件中
[[tool.uv.index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple" # 清华源