
image.png
在Python 項目用,常用的兩個構(gòu)建打包工具,一個是虛擬環(huán)境,virtualenv, 一個是依賴包管理工具pip,開始這2個工具都是第三方的,后來收編到 Python 官方,使用體驗有了很大的提升,后來有工具嘗試把這兩個工具合并,如pipvenv 等,但是這些工具都是用Python寫的,Python 是腳本語言,特別是處理包依賴的時候有大量的IO操作,這是Python就顯得有點慢。前端生態(tài)最近都在用表??的Rust 重寫工具鏈,Python 生態(tài)也有人在用Rust 寫Python 工具,uv 就是一個代表。
uv 是什么
uv 是一個一個非??斓腜ython包安裝和解析器,用Rust編寫。設(shè)計為代替 pip和pip-tools 的工具。
uv 有哪些特點
- 替代方案: 可完全替代常用的 pip、pip-tools 和 virtualenv 命令。
- 超快速度: 比 pip 和 pip-tools (pip-compile 和 pip-sync) 快 10-100 倍。
- 節(jié)省磁盤空間: 具有全局緩存,可重復(fù)使用依賴項,節(jié)省磁盤空間。
- 輕松安裝: 可通過 curl、pip、pipx 等多種方式安裝。uv 是靜態(tài)二進制文件,無需安裝 Rust 或 Python 即可使用。
- 廣泛兼容: 通過大量測試,確保兼容 PyPI 前 10,000 個常用包。
- 跨平臺支持: 支持 macOS、Linux 和 Windows 系統(tǒng)。
- 高級功能: 提供依賴項版本覆蓋和替代解析策略等高級功能。
- 清晰易懂的錯誤信息: 提供業(yè)界最佳的錯誤消息,并包含沖突跟蹤解析器。
- 支持高級 pip 功能: 支持 pip 的各種高級功能,例如可編輯安裝、Git 依賴項、直接 URL 依賴項、本地依賴項、約束、源代碼發(fā)布包、HTML 和 JSON 索引等。
安裝
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# With pip.
pip install uv
# With pipx.
pipx install uv
# With Homebrew.
brew install uv
使用
uv venv # 在 .venv 文件夾創(chuàng)建虛擬管徑
uv pip install flask # 安裝依賴 Flask.
uv pip install -r requirements.txt # 從 requirements.txt 文件中安裝
uv pip freeze > requirements.txt # 導出依賴聲明

image.png

image.png