Python 的發展與套件管理的進步密切相關,從手動安裝到 pip 和 Poetry 等工具。然而,隨著專案變得越來越複雜,傳統工具往往在速度和效率上出現不足。
uv 是一個用 Rust 建構的尖端 Python 套件和專案管理器,旨在改變這一現狀。 uv 結合了 pip、poetry 和 virtualenv 等工具的功能,簡化了依賴管理、腳本執行和專案建置等任務,所有這些都具有卓越的效能。它與 pip 命令無縫兼容,無需額外的學習曲線。
在本教程中,我們將探索如何安裝 uv 並充分利用其功能。從設定專案和管理依賴項到執行腳本和利用其增強的 pip 介面。
入門
目錄
- 點限制
- 什麼是紫外線
- 紫外線的主要特徵
- 基準
- 安裝
- 建立虛擬環境
- 使用 uv 建構 Flask 應用
- 使用 uv 安裝 python
- 工具
- 備忘單
- 當前限制
點的限制
Pip 是一個廣泛使用的 Python 編寫的套件管理系統,旨在安裝和管理軟體包。然而,儘管它很受歡迎,但它經常被批評為最慢的 Python 套件管理工具之一。關於「pip install 速度慢」的投訴非常常見,以至於經常出現在開發者論壇和主題中。
pip 的一個顯著缺點是它容易受到依賴氣味的影響,當依賴配置文件編寫或維護不當時就會出現這種情況。這些問題可能會導致嚴重的後果,例如專案的複雜性增加和可維護性降低。
pip 的另一個限制是它在恢復運行時環境時無法一致地準確地匹配 Python 程式碼。這種不匹配可能會導致依賴推斷的成功率較低,從而使可靠地重新創建專案環境變得困難。
什麼是紫外線
uv 是一個現代的、高效能的 Python 套件管理器,由 ruff 的創建者開發並用 Rust 編寫。它被設計為 pip 和 pip-tools 的直接替代品,提供卓越的速度以及與現有工具的兼容性。
主要功能包括支援可編輯安裝、Git 和 URL 依賴項、約束檔案、自訂索引等。 uv 符合標準的虛擬環境可與其他工具無縫協作,避免鎖定或自訂。它是跨平台的,支援 Linux、Windows 和 macOS,並且已經針對 PyPI 索引進行了廣泛的測試。
uv 專注於簡單性、速度和可靠性,解決了常見的開發人員痛點,如安裝緩慢、版本衝突和複雜的依賴管理,為現代 Python 開發提供了直觀的解決方案。
紫外線的主要特點
- ⚖️ 直接替換:無縫替換 pip、pip-tools、virtualenv 等工具,完全相容。
- ⚡ 極速:比 pip、pip-compile 和 pip-sync 等傳統工具快 10-100 倍。
- ?磁碟空間效率高:利用全域快取進行重複資料刪除,節省儲存空間。
- ?靈活安裝:可透過curl、pip或pipx安裝,無需Rust或Python。
- ?經過徹底測試:透過前 10,000 個 PyPI 套件大規模驗證效能。
- ?️ 跨平台支援:完全相容於 macOS、Linux 和 Windows。
- ?高階依賴管理:功能包括依賴版本覆蓋、替代解決策略和衝突追蹤解析器。
- ⁉️ 清除錯誤訊息:一流的錯誤處理確保開發人員能夠有效解決衝突。
- ?現代 Python 功能:支援可編輯安裝、Git 依賴項、直接 URL、本機依賴項、約束檔等。
- ?統一工具:將 pip、pipx、poetry、pyenv、twine 等工具的功能組合到一個解決方案中。
- ?️ 應用程式和腳本管理:安裝和管理 Python 版本,使用內聯依賴元資料運行腳本,並支援全面的專案工作流程。
- ?️ 通用鎖定檔案:透過一致且可移植的鎖定檔案簡化專案管理。
- ?工作區支援:透過 Cargo 式工作區管理處理可擴充專案。
基準測試
資料來源:https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
使用熱緩存解析(左)和安裝(右)依賴項,模擬重新建立虛擬環境或向現有專案新增依賴項的過程。
資料來源:https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
使用冷緩存解析(左)和安裝(右)依賴項模擬乾淨環境中的執行。在沒有快取的情況下,uv 比 pip 和 pip-tools 快 8-10 倍,而在使用熱快取的情況下,它的速度可以快 80-115 倍。
資料來源:https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
使用(左)和不使用(右)種子包(例如 pip 和 setuptools)建立虛擬環境。 uv 比 python -m venv 快大約 80 倍,比 virtualenv 快 7 倍,同時獨立於 Python 運行。
安裝
安裝 uv 快速又簡單。您可以選擇獨立安裝程式或直接從 PyPI 安裝。
# 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 # With Pacman. pacman -S uv
在使用uv之前,我們必須將uv路徑加入環境變數。
對於 Linux 和 macOS,請在終端機中使用以下命令修改 PATH 環境變數:
export PATH="$HOME/.local/bin:$PATH"
對於 Windows,要將目錄新增至 Windows 上的使用者和系統的 PATH 環境變數中,請在搜尋面板中搜尋環境變數。在“使用者變數”/“系統變數”下,選擇“路徑”變量,按一下“編輯”,然後按一下“新建”並新增所需的路徑。
%USERPROFILE%\.local\bin
安裝完成後,在終端機執行uv命令,以驗證是否安裝正確。
建立虛擬環境
使用 uv 建立虛擬環境簡單明了。使用以下命令以及您所需的環境名稱來建立它。
uv venv
- 執行以下指令啟動虛擬環境。
# On macOS and Linux. source .venv/bin/activate # On Windows. .venv\Scripts\activate
安裝軟體包
將軟體包安裝到虛擬環境中遵循熟悉的過程。下面給出各種安裝方法
uv pip install flask # Install Flask. uv pip install -r requirements.txt # Install from a requirements.txt file. uv pip install -e . # Install current project in editable mode. uv pip install "package @ ." # Install current project from disk uv pip install "flask[dotenv]" # Install Flask with "dotenv" extra.
要將鎖定的依賴項與虛擬環境同步,請使用以下命令:
uv pip sync requirements.txt # Install dependencies from a requirements.txt file.
uv 支援與現有工具類似的各種命令列參數,包括 -rrequirements.txt、-cconstraints.txt、-e .、--index-url 等。
使用 uv 構建燒瓶應用程式
讓我們用 uv 來探索一些與項目相關的指令。首先初始化一個名為「sample-project」的 Python 專案。
# 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 # With Pacman. pacman -S uv
導航到範例專案目錄。 uv 使用 app.py、requirements.txt、README.md 等基本檔案初始化專案。
使用run指令執行範例Python檔。此過程首先建立虛擬環境資料夾,然後執行 Python 檔案。
export PATH="$HOME/.local/bin:$PATH"
安裝燒瓶
將 Flask 加入您的專案依賴項。
%USERPROFILE%\.local\bin
創建 Flask 應用程式
新建一個並編寫以下程式碼。
uv venv
運行應用程式
使用 uv run 指令來執行應用程式。
# On macOS and Linux. source .venv/bin/activate # On Windows. .venv\Scripts\activate
開啟瀏覽器或使用curl或Postman等工具發送GET請求。
使用 uv 安裝 python
使用 uv 安裝 Python 是可選的,因為它可以與現有的 Python 安裝無縫協作。但是,如果首選透過 uv 安裝 Python,則可以使用簡單的命令來完成:
uv pip install flask # Install Flask. uv pip install -r requirements.txt # Install from a requirements.txt file. uv pip install -e . # Install current project in editable mode. uv pip install "package @ ." # Install current project from disk uv pip install "flask[dotenv]" # Install Flask with "dotenv" extra.
與傳統方法相比,這種方法通常更方便、更可靠,因為它避免了管理儲存庫或下載安裝程式的需要。只需執行命令,設定即可使用。
工具
CLI 工具可以透過 uv 指令安裝和使用。例如,可以安裝 Huggingface_hub 工具來將檔案拉取和推送到 Hugging Face 儲存庫。
- 使用以下指令使用uv安裝huggingface_hub。
uv pip sync requirements.txt # Install dependencies from a requirements.txt file.
- 以下指令顯示所有已安裝的工具:
uv init sample-project
備忘錄
這是使用 uv 執行常見操作的快速備忘單:
目前的限制
儘管 uv 為 Python 套件管理提供了快速且有效率的解決方案,但它也有一些限制:
- 不完整的 pip 相容性:雖然 uv 支援 pip 介面的很大一部分,但它尚未覆蓋整個功能集。其中一些差異是有意的設計選擇,而另一些則源於紫外線仍處於發展的早期階段。如需詳細比較,請參閱 pip 相容性指南。
- 平台特定的requirements.txt:與pip-compile一樣,uv產生特定於平台的requirements.txt檔案。這與 Poetry 和 PDM 等工具形成對比,後者創建與平台無關的 Poetry.lock 和 pdm.lock 檔案。因此,uv 的requirements.txt 檔案可能缺乏跨不同平台和Python 版本的可移植性。
感謝您閱讀這篇文章! !
感謝 Gowri M Bhatt 審閱內容。
如果您喜歡這篇文章,請點擊心形按鈕♥並分享以幫助其他人找到它!
資源
uv - 一個非常快速的 Python 套件和專案管理器,用 Rust 編寫 | docs.astral.sh
以上是uv 簡介:下一代 Python 套件管理器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

本文解釋瞭如何使用美麗的湯庫來解析html。 它詳細介紹了常見方法,例如find(),find_all(),select()和get_text(),以用於數據提取,處理不同的HTML結構和錯誤以及替代方案(SEL)

Python的statistics模塊提供強大的數據統計分析功能,幫助我們快速理解數據整體特徵,例如生物統計學和商業分析等領域。無需逐個查看數據點,只需查看均值或方差等統計量,即可發現原始數據中可能被忽略的趨勢和特徵,並更輕鬆、有效地比較大型數據集。 本教程將介紹如何計算平均值和衡量數據集的離散程度。除非另有說明,本模塊中的所有函數都支持使用mean()函數計算平均值,而非簡單的求和平均。 也可使用浮點數。 import random import statistics from fracti

本文比較了Tensorflow和Pytorch的深度學習。 它詳細介紹了所涉及的步驟:數據準備,模型構建,培訓,評估和部署。 框架之間的關鍵差異,特別是關於計算刻度的

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

本文指導Python開發人員構建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等庫詳細介紹,強調輸入/輸出處理,並促進用戶友好的設計模式,以提高CLI可用性。

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

文章討論了虛擬環境在Python中的作用,重點是管理項目依賴性並避免衝突。它詳細介紹了他們在改善項目管理和減少依賴問題方面的創建,激活和利益。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)