一個非常快的 Python 套件和專案管理器,用 Rust 編寫。
使用熱緩存安裝 Trio 的依賴項。
pip
、 pip-tools
、 pipx
、 poetry
、 pyenv
、 twine
、 virtualenv
等的工具。pip
快 10-100 倍。curl
或pip
安裝,無需Rust 或Python。uv 得到了 Ruff 的創作者 Astral 的支持。
使用我們的獨立安裝程式安裝 uv:
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows.
powershell -ExecutionPolicy ByPass -c " irm https://astral.sh/uv/install.ps1 | iex "
或者,來自 PyPI:
# With pip.
pip install uv
# Or pipx.
pipx install uv
如果透過獨立安裝程式安裝,uv 可以將自身更新到最新版本:
uv self update
有關詳細資訊和替代安裝方法,請參閱安裝文件。
uv 的文檔可在 docs.astral.sh/uv 取得。
此外,可以使用uv help
查看命令列參考文件。
uv 管理專案依賴項和環境,支援鎖定檔案、工作區等,類似rye
或poetry
:
$ uv init example
Initialized project `example` at `/home/user/example`
$ cd example
$ uv add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
+ example==0.1.0 (from file:///home/user/example)
+ ruff==0.5.4
$ uv run ruff check
All checks passed!
請參閱項目文件以開始使用。
uv 也支援建置和發布項目,即使它們不是用 uv 管理的。請參閱發布指南以了解更多資訊。
uv 執行並安裝 Python 套件提供的命令列工具,類似於pipx
。
使用uvx
( uv tool run
的別名)在臨時環境中執行工具:
$ uvx pycowsay ' hello world! '
Resolved 1 package in 167ms
Installed 1 package in 9ms
+ pycowsay==0.0.0.2
"""
------------
< hello world! >
------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
使用uv tool install
安裝工具:
$ uv tool install ruff
Resolved 1 package in 6ms
Installed 1 package in 2ms
+ ruff==0.5.4
Installed 1 executable: ruff
$ ruff --version
ruff 0.5.4
請參閱工具文件以開始使用。
uv 安裝 Python 並允許在版本之間快速切換。
安裝多個Python版本:
$ uv python install 3.10 3.11 3.12
Searching for Python versions matching: Python 3.10
Searching for Python versions matching: Python 3.11
Searching for Python versions matching: Python 3.12
Installed 3 versions in 3.42s
+ cpython-3.10.14-macos-aarch64-none
+ cpython-3.11.9-macos-aarch64-none
+ cpython-3.12.4-macos-aarch64-none
根據需要下載Python版本:
$ uv venv --python 3.12.0
Using Python 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv run --python [email protected] -- python --version
Python 3.8.16 (a9dbdca6fc3286b0addd2240f11d97d8e8de187a, Dec 29 2022, 11:45:30)
[PyPy 7.3.11 with GCC Apple LLVM 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>>
使用目前目錄中的特定Python版本:
$ uv python pin [email protected]
Pinned `.python-version` to `[email protected]`
請參閱 Python 安裝文件以開始使用。
uv 管理單一檔案腳本的依賴關係和環境。
建立一個新腳本並新增內聯元資料聲明其相依性:
$ echo ' import requests; print(requests.get("https://astral.sh")) ' > example.py
$ uv add --script example.py requests
Updated `example.py`
然後,在隔離的虛擬環境中執行腳本:
$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
<Response [200]>
請參閱腳本文件以開始使用。
uv 提供了常見pip
、 pip-tools
和virtualenv
指令的直接替代。
uv 透過高級功能擴展了其接口,例如依賴版本覆蓋、獨立於平台的分辨率、可重現的分辨率、替代分辨率策略等等。
使用uv pip
介面,無需更改現有工作流程即可遷移到 uv,並體驗 10-100 倍的加速。
將需求編譯成與平台無關的需求文件:
$ uv pip compile docs/requirements.in
--universal
--output-file docs/requirements.txt
Resolved 43 packages in 12ms
建立虛擬環境:
$ uv venv
Using Python 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
安裝鎖定要求:
$ uv pip sync docs/requirements.txt
Resolved 43 packages in 11ms
Installed 43 packages in 208ms
+ babel==2.15.0
+ black==24.4.2
+ certifi==2024.7.4
...
請參閱 pip 介面文件以開始使用。
參見uv的平台支援文檔。
請參閱 uv 的版本控制策略文件。
我們熱衷於支持各種經驗水平的貢獻者,並希望看到您參與該專案。請參閱貢獻指南以開始使用。
uv 的依賴解析器在底層使用 PubGrub。我們感謝 PubGrub 維護者,特別是 Jacob Finkelman 的支持。
uv 的 Git 實作是基於 Cargo 的。
uv 的一些優化的靈感來自於我們在 pnpm、Orogene 和 Bun 中看到的出色工作。我們還從 Nathaniel J. Smith 的 Posy 中學到了很多東西,並調整了它的彈跳床以支援 Windows。
uv 已獲得以下任一許可
由您選擇。
除非您另有明確說明,否則您有意提交的包含在 uv 中的任何貢獻(如 Apache-2.0 許可證中所定義)均應如上所述獲得雙重許可,無需任何附加條款或條件。