uv
非常に高速なPythonパッケージおよびプロジェクトマネージャー、Rustで書かれています。
ウォームキャッシュでTrioの依存関係をインストールしています。
ハイライト
- 🚀
pip
、pip-tools
、pipx
、poetry
、pyenv
、twine
、virtualenv
などを置き換える単一のツール。 - ⚡️
pip
よりも10-100倍高速。 - 🐍 Pythonバージョンをインストールおよび管理。
- 🛠️ Pythonアプリケーションを実行およびインストール。
- ❇️ スクリプトを実行、インライン依存関係メタデータをサポート。
- 🗂️ 包括的なプロジェクト管理を提供し、ユニバーサルロックファイルを持つ。
- 🔩 pip互換インターフェースを含み、パフォーマンス向上と馴染みのあるCLIを提供。
- 🏢 スケーラブルなプロジェクトのためのCargoスタイルのワークスペースをサポート。
- 💾 依存関係の重複排除のためのグローバルキャッシュを持ち、ディスクスペース効率が高い。
- ⏬
curl
またはpip
を介してRustやPythonなしでインストール可能。 - 🖥️ macOS、Linux、Windowsをサポート。
uvはRuffのクリエイターであるAstralによってバックアップされています。
はじめに
公式のスタンドアロンインストーラーを使用してuvをインストールします:
次に、最初のステップを確認するか、以下の概要を読んでください。
Tip
uvはpip、Homebrewなどでもインストールできます。すべての方法はインストールページで確認できます。
プロジェクト管理
uvはプロジェクトの依存関係と環境を管理し、ロックファイル、ワークスペースなどをサポートします。rye
やpoetry
に似ています:
$ uv init example
プロジェクト`example`を`/home/user/example`に初期化しました
$ cd example
$ uv add ruff
仮想環境を作成しています:.venv
170msで2つのパッケージを解決しました
Built example @ file:///home/user/example
627msで2つのパッケージを準備しました
1msで2つのパッケージをインストールしました
+ example==0.1.0 (from file:///home/user/example)
+ ruff==0.5.4
$ uv run ruff check
すべてのチェックが合格しました!
プロジェクトガイドを参照して始めてください。
uv also supports building and publishing projects, even if they're not managed with uv. See the publish guide to learn more.
ツール管理
uvはPythonパッケージが提供するコマンドラインツールを実行およびインストールします。pipx
に似ています。
一時的な環境でツールを実行するには、uvx
(uv tool run
のエイリアス)を使用します:
$ uvx pycowsay 'hello world!'
167msで1つのパッケージを解決しました
9msで1つのパッケージをインストールしました
+ pycowsay==0.0.0.2
"""
------------
< hello world! >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
ツールをインストールするには、uv tool install
を使用します:
$ uv tool install ruff
6msで1つのパッケージを解決しました
2msで1つのパッケージをインストールしました
+ ruff==0.5.4
1つの実行可能ファイルをインストールしました:ruff
$ ruff --version
ruff 0.5.4
ツールガイドを参照して始めてください。
Python管理
uvはPythonをインストールし、バージョン間の迅速な切り替えを可能にします。
複数のPythonバージョンをインストールします:
$ uv python install 3.10 3.11 3.12
Python 3.10に一致するバージョンを検索しています
Python 3.11に一致するバージョンを検索しています
Python 3.12に一致するバージョンを検索しています
3.42秒で3つのバージョンをインストールしました
+ 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
CPython 3.12.0を使用しています
仮想環境を作成しています:.venv
有効化するには:source .venv/bin/activate
$ uv run --python pypy@3.8 -- python
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バージョンを使用します:
Pythonのインストールガイドを参照して始めてください。
スクリプトサポート
uvは単一ファイルスクリプトの依存関係と環境を管理します。
新しいスクリプトを作成し、インラインメタデータを追加してその依存関係を宣言します:
$ echo 'import requests; print(requests.get("https://astral.sh"))' > example.py
$ uv add --script example.py requests
`example.py`を更新しました
次に、スクリプトを隔離された仮想環境で実行します:
スクリプトガイドを参照して始めてください。
pipインターフェース
uvは一般的なpip
、pip-tools
、およびvirtualenv
コマンドのドロップイン置き換えを提供します。
uvは依存関係のバージョンオーバーライド、プラットフォーム非依存の解決、再現可能な解決、代替解決戦略などの高度な機能を備えたインターフェースを拡張します。
既存のワークフローを変更せずにuvに移行し、uv pip
インターフェースで10-100倍の速度向上を体験してください。
プラットフォーム非依存の要件ファイルに要件をコンパイルします:
$ uv pip compile docs/requirements.in \
--universal \
--output-file docs/requirements.txt
12msで43のパッケージを解決しました
仮想環境を作成します:
ロックされた要件をインストールします:
$ uv pip sync docs/requirements.txt
11msで43のパッケージを解決しました
208msで43のパッケージをインストールしました
+ babel==2.15.0
+ black==24.4.2
+ certifi==2024.7.4
...
pipインターフェースのドキュメントを参照して始めてください。