Rust で書かれた非常に高速な Python パッケージおよびプロジェクト マネージャー。
ウォーム キャッシュを使用して Trio の依存関係をインストールします。
pip
、 pip-tools
、 pipx
、 poetry
、 pyenv
、 twine
、 virtualenv
などを置き換える単一のツール。pip
よりも 10 ~ 100 倍高速です。curl
またはpip
経由でインストール可能。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 は、 pipx
と同様に、Python パッケージによって提供されるコマンドライン ツールを実行してインストールします。
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 は次のいずれかに基づいてライセンスされています。
あなたのオプションで。
明示的に別段の定めがない限り、Apache-2.0 ライセンスで定義されているように、UV に含めるために意図的に提出された投稿は、追加の条項や条件なしで上記のように二重ライセンスされるものとします。