您是否厭倦了為了控制 Python 環境和依賴項而使用 pip、virtualenv、conda、poetry 和 pyenv 等多個工具?你並不孤單!管理 Python 專案可能會讓人感到頭疼,尤其是在需要處理各種不同的套件管理器和工具的情況下。
輸入 uv — 通用 Virtualenv。將其視為一站式套件管理器,旨在簡化和加速您的 Python 開發流程。
uv 從另一個現代包裝管理器 Rye 汲取靈感,統一了 pip、pip-tools、pyenv、virtualenv 和 Poetry 的最佳功能。 uv 使用 Rust 構建,不僅速度快,而且效率高,簡化了從管理依賴項到創建虛擬環境的一切。
簡而言之,uv 就是整合。當您可以獲得一種統一的體驗時,為什麼要在多種工具之間切換?它旨在消除 Python 開發中的摩擦,為您提供更一致、更快速的專案管理方式。而且速度還很快!這為動態管理開啟了新的大門
uv 最令人興奮的功能之一是能夠直接在 Python 腳本中新增依賴項。想像你有一個像這樣的簡單腳本:
# app.py import requests from rich.pretty import pprint response = requests.get("https://peps.python.org/api/peps.json") data = response.json() pprint([(k, v["title"]) for k, v in data.items()][:10])
執行此腳本通常意味著設定虛擬環境並手動安裝依賴項。使用 uv,您可以將所有依賴項直接嵌入到腳本中,使其自包含和可共享:
$ uv add --script app.py 'requests<3' 'rich'
這會將元資料加入腳本檔案:
# /// script # dependencies = [ # "requests<3", # "rich", # ] # ///
就是這樣!您可以與其他人共享此文件,他們只需運行:
$ uv run app.py
瞧——無需外部設定!這一切都歸功於 uv 的速度和效率。
預設情況下,uv 要求在虛擬環境中安裝軟體包,以保持系統乾淨並避免不同項目之間的衝突。使用 uv 建立虛擬環境很簡單:
$ uv venv
這將建立一個包含隔離環境的 .venv 目錄。如果你想指定自訂目錄或Python版本,你可以這樣做:
$ uv venv my_env --python 3.9
環境已準備好使用,uv 會自動偵測您的所有命令,例如安裝套件或執行腳本。
使用 uv add:當您想要在專案的 pyproject.toml 檔案中新增依賴項。當您正在開發專案並希望追蹤所有依賴項以使專案易於共享和複製時,這是最好的選擇。我們將在下一篇文章中介紹這一點,敬請期待!
$ uv add fastapi
這將更新您的 pyproject.toml 並將版本鎖定在 uv.lock 中。
使用 uv pip install:當您想要安裝套件以快速使用而不修改專案檔案時,或者想要安裝全域工具而無需在 pyproject.toml 中追蹤它們時。將 uv pip 視為即時的一次性安裝。
$ uv pip install requests
選擇正確的命令可確保您的專案得到正確管理並且易於共享或部署。
我們都經歷過這樣的情況——你的程式碼今天可以工作,但明天就會因為套件更新而崩潰。使用 uv,您可以透過鎖定軟體包版本來防止這種情況,以確保一致性和可重複性:
[tool.uv] exclude-newer = "2023-10-16T00:00:00Z"
這樣,即使您的依賴項出現新版本,您的專案也保持穩定。非常適合無法承受意外的長期專案!
許多開發人員必須處理需要不同 Python 版本的多個專案。 uv 讓切換版本變得如此簡單:
$ uv python install 3.8 3.9 3.10
安裝版本後,它們之間的切換是無縫的:
$ uv run --python 3.10 app.py
如果您想要鎖定專案的特定版本:
$ uv python pin 3.9
不再需要雜耍 pyenv 指令 - uv 會為您處理所有繁重的工作。
uv provides a pip-like experience but with turbocharged performance. Installing packages is straightforward:
$ uv pip install flask
Need to add optional dependencies or install directly from a GitHub repo? No sweat:
$ uv pip install 'torch>=1.10.0' "git+https://github.com/astral-sh/ruff"
No more waiting around for slow installations—uv gets the job done fast and effectively.
Whether you're linting code or formatting files, uv makes installing CLI tools easy:
Globally:
$ uv tool install ruff
Locally within a Project:
$ uv add ruff
Run Ephemeral Commands without Installing Globally:
$ uvx black my_code.py
Say goodbye to package conflicts and environment pollution—just run your tools whenever and wherever you need them.
If you're looking to supercharge your Python development and want to stop wrestling with multiple tools, uv is your answer. With its streamlined commands, reproducible environments, and efficient package management, uv makes Python development a pleasure rather than a chore.
Ready to take uv for a spin? ? Start today and experience a better way to manage your Python projects.
Stay tuned for Part 2, where we'll dive deeper into advanced features like leveraging pyproject.toml, handling global vs. local tool installations, and how uv can be your best friend when managing complex environments.
Happy coding! ?✨
For more details and full documentation, check out uv documentation.
以上是使用 uv 掌握 Python 專案管理 PartIts Time to Ditch Poetry的詳細內容。更多資訊請關注PHP中文網其他相關文章!