開源軟體總是將創新帶入我們的技術棧,在Python界,高效的包管理器是每個Python開發者的夢想。今天,讓我們一起深入了解並套用一個名為uv的開源計畫,這是一個在Rust中編寫的極速Python包安裝及解析器!
uv計畫概述
uv作為pip、pip-tools和virtualenv的替代品,不僅在速度上有顯著提升,還在磁盤利用率、便攜性和功能上進行了最佳化。它由Astral公司後援,Astral還是Ruff這個計畫的創造者。讓我們來看看uv都提供了哪些特色功能:
作為pip和pip-tools常見命令的替代品
速度比pip和pip-tools快10到100倍
有效利用磁盤空間,透過全域緩存來去重依賴
無需Rust或Python環境,透過curl、pip、pipx等即可安裝
支持macOS、Linux和Windows
提供版本覆蓋和備選解析策略等高級功能
錯誤訊息友好,內建沖突跟蹤解析器
安裝及快速開始
可以透過以下一種或多種方法安裝uv:
# 在macOS和Linux上
curl -LsSf https://astral.sh/uv/install.sh | sh
# 在Windows上
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 透過pip安裝
pip install uv
# 透過pipx安裝
pipx install uv
# 透過Homebrew安裝
brew install uv
# 透過Pacman安裝
pacman -S uv
建立虛擬環境,很簡單:
uv venv # 在.venv中建立虛擬環境。
啟用虛擬環境:
# 在macOS和Linux上
source .venv/bin/activate
# 在Windows上
.venv\Scripts\activate
在虛擬環境中安裝包:
uv pip install flask # 安裝Flask
uv pip install -r requirements.txt # 從requirements.txt檔中安裝
uv pip install -e . # 以可編輯模式安裝當前計畫
uv pip install "package @ ." # 從磁盤安裝當前計畫
uv pip install "flask[dotenv]" # 安裝帶有"dotenv"額外依賴的Flask
從輸入檔生成一組釘選的依賴項:
uv pip compile pyproject.toml -o requirements.txt # 讀取pyproject.toml檔
uv pip compile requirements.in -o requirements.txt # 讀取requirements.in檔
與虛擬環境同步一組釘選的依賴項:
uv pip sync requirements.txt # 從requirements.txt檔安裝
高級使用
Python發現
uv不依賴Python,但需要定位Python環境來安裝依賴和構建源分發。執行
pip sync
或
pip install
時,uv會按下面的順序搜尋虛擬環境:
基於
VIRTUAL_ENV
環境變量啟用的虛擬環境。基於
CONDA_PREFIX
環境變量啟用的Conda環境。當前目錄或最近父目錄的
.venv
中的虛擬環境。
如果找不到虛擬環境,uv將提示使用者在當前目錄透過
uv venv
建立一個。
執行
pip compile
時,uv不需要虛擬環境,並將按以下順序搜尋Python直譯器:
...(與上面相同)...
如果提供了版本號,如
--python-version=3.7
,uv還會根據該版本號搜尋直譯器。
安裝到任意Python環境
由於uv不依賴Python,所以它甚至可以安裝到除自己之外的虛擬環境。例如,設定
VIRTUAL_ENV=/path/to/venv
會導致uv安裝到指定路徑,無論uv安裝在哪裏。
Git身份驗證和HTTP身份驗證
uv支持從Git安裝包,同時支持SSH和帶密碼或token的私有倉庫。提供了用於HTTP認證的多種源。
依賴項緩存及解析策略
uv使用積極緩存策略避免重復下載和構建。例如,可以透過
uv pip install --refresh
或
uv cache clean
清除緩存。預設情況下,uv傾向於安裝每個包的最新相容版本,也可以修改解析策略。
平台與環境變量支持
uv支持包括macOS(Apple Silicon和x86_64)、Linux(x86_64)以及Windows(x86_64)在內的第一層平台。對於環境變量,可以設定如
SSL_CERT_FILE
和
RUST_LOG
等。
文章精選
點 擊 關 註 並 掃 碼 添 加 進 交 流 群
領
取
「Rust
語
言
」
學
習
資
料
關註公眾號並回復 「uv」 立即獲取計畫地址。