以下是使用 Python 包管理工具 uv 的常見命令指南。uv 是由 Astral(Ruff 的開發者)開發的高性能 Python 包安裝器和解析器,旨在替代 pip 和 pip-tools:
1. 安裝 uv
uv官網倉庫
# Linux/macOS
curl -Ls https://astral.sh/uv/install.sh | bash
source ~/.bashrc
uv# Windows (Powershell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"# 通過 pip (臨時方法)
pip install uv
我直接運行pip install uv
會報錯。
2. 核心命令
(1) 安裝包
# 安裝單個包
uv pip install pandas# 安裝多個包
uv pip install requests numpy# 從 requirements.txt 安裝
uv pip install -r requirements.txt
(2) 創建虛擬環境
# 創建默認 .venv 環境
uv venv# 指定環境名稱
uv venv myenv# 使用特定 Python 版本
uv venv --python=3.11
(3) 激活虛擬環境
# Linux/macOS
source .venv/bin/activate# Windows
.venv\Scripts\activate
3. 依賴管理
(1) 生成 requirements.txt
# 生成精確版本鎖定文件
uv pip freeze > requirements.txt# 生成帶哈希值的安全鎖定文件
uv pip compile --output-file=requirements.lock
(2) 從 .in 文件生成依賴
# 創建 requirements.in 文件
echo "requests" > requirements.in
echo "numpy" >> requirements.in# 生成解析后的 requirements.txt
uv pip compile requirements.in -o requirements.txt
(3) 同步依賴
# 根據 requirements.txt 精確同步環境
uv pip sync requirements.txt
4. 高級用法
(1) 快速安裝 + 環境創建
# 一步創建環境并安裝依賴
uv pip install -r requirements.txt --python=3.11
(2) 升級包
uv pip install --upgrade pandas
(3) 卸載包
uv pip uninstall package-name
(4) 列出已安裝包
uv pip list
5. 性能優化技巧
利用緩存加速:
# 查看緩存位置
uv cache dir# 清理緩存
uv cache clean
并行安裝(默認啟用):
uv pip install -r requirements.txt --parallel
跳過依賴解析(僅當確定依賴安全時):
uv pip install --no-deps package-name
6. 與 pip 命令對比
操作 | pip命令 | uv等效命令 |
---|---|---|
安裝包 | pip install pandas | uv pip install pandas |
創建虛擬環境 | python -m venv .venv | uv venv |
凍結依賴 | pip freeze > reqs.txt | uv pip freeze > reqs.txt |
從 .in 生成依賴 | pip-compile requirements.in | uv pip compile requirements.in |
同步環境 | pip-sync requirements.txt | uv pip sync requirements.txt |
7. 配置文件
uv 支持 pyproject.toml 配置:
[tool.uv]
# 設置默認 Python 版本
python = "3.11"# 設置緩存路徑
cache-dir = "/path/to/cache"
常見問題解決
問題:安裝時出現兼容性錯誤
解決:生成精確依賴樹
uv pip compile requirements.in --upgrade
問題:無法找到 Python 解釋器
解決:指定 Python 路徑
uv venv --python=/usr/bin/python3.11
問題:Windows 權限錯誤
解決:以管理員身份運行 PowerShell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
💡 提示:uv 完全兼容現有的 pip 工作流,但速度通常快 10-100 倍。對于新項目,建議使用 uv pip compile 替代 pip-compile。