# 🚀 uv: Python 開發的次世代工具鏈
> `uv` 是由 `ruff` 的開發團隊 Astral 所打造的一款極速 Python 套件管理工具。它以 Rust 編寫,旨在提供比傳統 `pip` 和 `venv` 更快、更流暢、更整合的開發體驗。
[uv](https://github.com/astral-sh/uv)
## 🌟 核心亮點
- **⚡ 極致速度**:比 `pip` 快 **10-100 倍**,利用全域快取,安裝套件幾乎在瞬間完成。
- **📦 一體化工具**:單一執行檔整合了虛擬環境管理、套件安裝、依賴解析等功能,告別 `pip` + `virtualenv` + `pip-tools` 的繁瑣組合。
- **🤝 `pip` API 相容**:指令設計與 `pip` 高度相容,讓你可以無痛遷移,立即上手。
- **🦀 Rust 驅動**:底層由 Rust 強力驅動,確保了頂級的效能和系統資源效率。
## 🛠️ 安裝
你可以透過 `pip` 或官方安裝腳本來安裝 `uv`:
```bash
# 推薦:透過 pipx 或 pip 安裝
pip install uv
# 或者,使用官方的 curl 腳本
curl -LsSf https://astral.sh/uv/install.sh | sh
```
## ⚡ 快速上手
`uv` 的設計旨在簡化工作流程。以下是幾個常用指令,讓你感受其魅力。
### 1. 虛擬環境管理
`uv` 內建了超高速的虛擬環境工具。
```bash
# 建立一個名為 .venv 的虛擬環境 (比 `python -m venv` 快得多)
uv venv
# 你也可以指定 Python 版本
uv venv --python 3.11
```
建立後,像往常一樣啟用它:
```bash
# Linux / macOS
source .venv/bin/activate
# Windows (cmd.exe)
.venv\Scripts\activate.bat
```
### 2. 套件安裝與同步
`uv` 的套件安裝指令與 `pip` 完全相容,但速度更快。
```bash
# 從 PyPI 安裝套件
uv pip install requests pandas
# 從 requirements.txt 安裝
uv pip install -r requirements.txt
# ✨ 推薦:使用 sync 指令
# 這會確保虛擬環境與 requirements.txt 的內容完全一致,不多也不少
uv pip sync requirements.txt
```
### 3. 依賴鎖定
`uv` 可以方便地生成 `requirements.txt` 檔案。
```bash
# 將目前環境中的套件列表匯出到 requirements.txt
uv pip freeze > requirements.txt
```
## 🆚 `uv` vs. `pip` + `venv` 指令對照
| 任務 | 傳統指令 (`pip` + `venv`) | `uv` 指令 | 備註 |
| :--- | :--- | :--- | :--- |
| **建立環境** | `python -m venv .venv` | `uv venv` | `uv` 速度快非常多 |
| **安裝套件** | `pip install <pkg>` | `uv pip install <pkg>` | `uv` 速度快非常多 |
| **同步環境** | `pip install -r req.txt` | `uv pip sync req.txt` | `sync` 會移除多餘套件 |
| **鎖定依賴** | `pip freeze > req.txt` | `uv pip freeze > req.txt` | 用法相同 |
## 結語
`uv` 透過其驚人的速度和整合的工具鏈,為 Python 開發者提供了一個現代化、高效的選擇。如果你想擺脫緩慢的安裝速度和繁瑣的工具切換,`uv` 絕對值得一試!