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インターフェースのドキュメントを参照して始めてください。