文章目錄
- 什么是 `uv`?
- 安裝 `uv`
- 在線安裝(推薦)
- Windows 系統
- Linux / macOS 系統
- 離線安裝
- 步驟 1:獲取二進制包
- 步驟 2:解壓并移動到可執行路徑
- 步驟 3:設置環境變量
- 驗證安裝
- 創建并激活虛擬環境
- 創建虛擬環境
- 輸出示例(Windows):
- 輸出示例(Linux/macOS):
- 激活虛擬環境
- Windows:
- Linux/macOS:
- `uv` vs `conda`:誰更勝一籌?
- 適用場景建議
- 選擇 `uv` 的場景:
- 選擇 `conda` 的場景:
- 總結
- 參考資源
在 Python 開發中,虛擬環境(Virtual Environment)是管理依賴和項目隔離的核心工具。傳統的 venv 和 pip 在工程效率上存在諸多痛點,而 conda 雖然功能強大,但其跨語言特性和龐大的體積并非所有場景都需要。今天,我們介紹一個全新的 Python 工具——uv,它結合了 Rust 語言的性能優勢和現代包管理理念,讓 Python 開發更高效、更簡潔。
什么是 uv?
uv 是由 Astral 開發的 Python 包管理器和虛擬環境管理工具,用 Rust 編寫,專注于 速度 和 輕量化。相比 conda,uv 的核心優勢在于:
- 極致速度:依賴解析和包安裝速度比
pip快 10-100 倍。 - 純 Python 生態支持:無縫對接 PyPI 和
pyproject.toml。 - 輕量級隔離:虛擬環境體積小,啟動秒級完成。
- 現代化命令設計:命令簡潔直觀,如
uv venv、uv add等。
安裝 uv
在線安裝(推薦)
Windows 系統
# 使用 PowerShell 安裝 uv
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"
注意:安裝后需手動添加環境變量(路徑因人而異,按提示操作):
$env:Path = "C:\Users\<用戶名>\.local\bin;$env:Path"
Linux / macOS 系統
# 使用 curl 安裝(推薦)
curl -LsSf https://astral.sh/uv/install.sh | sh# 或使用 wget 安裝
wget -qO- https://astral.sh/uv/install.sh | sh
驗證安裝:
uv --version
離線安裝
步驟 1:獲取二進制包
從 GitHub Releases 下載對應平臺的離線包,例如:
uv-x86_64-unknown-linux-gnu.tar.gz
步驟 2:解壓并移動到可執行路徑
# 解壓
tar -zxvf uv-x86_64-unknown-linux-gnu.tar.gz# 移動到 ~/.local/bin
sudo mv uv uvx ~/.local/bin/
步驟 3:設置環境變量
# 臨時生效
export PATH="$HOME/.local/bin:$PATH"# 永久生效(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
驗證安裝
uv --version

創建并激活虛擬環境
創建虛擬環境
# 創建名為 rag 的虛擬環境,使用 Python 3.12.7
uv venv rag --python 3.12.7
輸出示例(Windows):
uv venv rag --python 3.12.7
Using CPython 3.12.7
Creating virtual environment at: rag
Activate with: rag\Scripts\activate
輸出示例(Linux/macOS):
$ uv venv rag -p 3.12.7
Using CPython 3.12.7
Creating virtual environment at: rag
Activate with: source rag/bin/activate
激活虛擬環境
Windows:
rag\Scripts\activate
Linux/macOS:
source rag/bin/activate
uv vs conda:誰更勝一籌?
| 對比維度 | uv (astral-sh/uv) | conda (Anaconda/miniconda) |
|---|---|---|
| 核心定位 | Python 專屬包管理器 + 環境管理器(Rust 開發) | 跨語言包管理器 + 環境管理器(支持多編程語言) |
| 速度 | 優勢顯著:Rust 編譯帶來極致速度,環境創建/刪除秒級完成 | 速度較慢:依賴解析和安裝耗時久,尤其復雜環境 |
| 語言支持 | 僅支持 Python,專注 PyPI 生態 | 跨語言支持:Python、R、C++、Fortran 等 |
| 依賴處理 | 輕量:依賴 PyPI,優先處理純 Python 包;復雜二進制依賴需額外配置 | 二進制依賴處理強:自帶 conda-forge,可直接安裝預編譯科學計算依賴(如 CUDA/MKL 版本的 PyTorch) |
| 環境隔離 | 輕量級隔離:共享系統底層庫,環境體積小 | 深度隔離:隔離非 Python 依賴(如 C 庫),兼容性高 |
| 生態與兼容性 | 高兼容:無縫對接 pip 和 PyPI,支持 pyproject.toml | 生態成熟:conda-forge 倉庫包數量多,適合數據科學場景 |
| 使用門檻 | 簡單:命令簡潔(如 uv venv、uv add),適合 Python 開發者快速上手 | 稍高:需理解頻道、二進制依賴等概念 |
適用場景建議
選擇 uv 的場景:
- 純 Python 開發:無需跨語言依賴。
- 追求極致速度:頻繁創建環境、安裝包。
- 現代 Python 項目:需與
pip/poetry協作。
選擇 conda 的場景:
- 跨語言開發:如 Python+R 或需要 CUDA/MKL 支持。
- 科學計算/機器學習:需預編譯二進制依賴。
- 深度環境隔離:如多版本 CUDA 共存。
總結
uv 是 Python 開發者的新寵,它以 Rust 的性能優勢 和 現代化設計,解決了傳統工具的痛點。如果你專注于 Python 生態,追求速度和輕量化,uv 是理想選擇;而 conda 仍然是科學計算領域的全能選手。根據項目需求選擇合適的工具,才能事半功倍!
參考資源
- uv GitHub 項目
- uv 官方文檔
- Conda 官方文檔