uv

uv 0.4+

uv CLI のクイック リファレンス:Python プロジェクト初期化、依存関係管理、仮想環境、ロックファイル解決、ツール ランナー、自己更新 — よく使うオプションと実用例をまとめました。

39 コマンド

uv のインストール

curl -LsSf https://astral.sh/uv/install.sh | sh

macOS / Linux 用の公式ワンライン インストーラー — uv を `~/.local/bin` にインストールし、現在のシェル用に PATH に追加します。

curl -LsSf https://astral.sh/uv/install.sh | sh
pipx install uv

pipx を介して分離された CLI ツールとして uv をインストールします(管理された Python インストールで推奨)。

pipx install uv
winget install --id=astral-sh.uv

Windows Package Manager(Windows 10/11)経由で uv をインストールします。

winget install --id=astral-sh.uv

自己更新

uv self update

uv を最新リリースに更新します。次のプレリリースを取得するには `--preview` を使用します。

--preview; --stable

uv self update

Python バージョン

uv python install <ver>

Python インタープリターを uv の管理されたキャッシュ(`~/.cache/uv` / `%LOCALAPPDATA%\uv`)にダウンロードします。`3.12`、`3.11.9`、さらにはナイトリー用の `cpython-3.13.0a5` を渡します。

3.12; 3.11.9; [email protected]; --mirror

uv python install 3.12
uv python list

uv がダウンロードできるすべての Python インタープリター(CPython、PyPy、フリー スレッド ビルド)を一覧表示します。すでに持っているものにフィルタするには `--only-installed` を使用します。

--only-installed; --all-versions; --arch; --os

uv python list --only-installed
uv python find

現在のディレクトリの uv が使用するインタープリターへのパスを表示します。`.python-version`、`pyproject.toml`、アクティブな virtualenv を尊重します。

<version>

uv python find 3.12
uv python pin <ver>

現在のプロジェクト用に Python バージョンを固定します — `.python-version` を書き込みます。CI / Docker はこれを読み取ってローカル インタープリターに合わせます。

uv python pin 3.12

プロジェクト初期化

uv init <name>

新しい Python プロジェクトをスキャフォールドします: `pyproject.toml`、hello-world モジュール、`.gitignore`、オプションのテスト / README。

--package 配布可能パッケージとしてビルド; --lib ライブラリとしてビルド; --bare ソース レイアウトなし; --python <ver>; --no-readme; --no-pin-python

uv init my-app --package --python 3.12
uv init --lib <name>

ライブラリ プロジェクトを初期化します(src レイアウト、`from <name> import ...` を公開)。

uv init my-lib --lib

同期

uv sync

`pyproject.toml` と `uv.lock` で宣言されたすべての依存関係をプロジェクトの virtualenv にインストールします。冪等; `--frozen` はロックファイル更新をスキップし、`--locked` は変更される場合に失敗します。

--frozen; --locked; --no-dev; --extra <name>; --all-extras; --group <name>; --no-install-project

uv sync --all-extras
uv lock

インストールせずに `uv.lock` ファイルを解決して書き込みます。`--check` を使用して `pyproject.toml` と一致することを検証します(CI で便利)。

--check; --upgrade; --upgrade-package <pkg>; --frozen; --dry-run

uv lock --check

追加 / 削除

uv add <pkg>

`pyproject.toml` に依存関係を追加し、`uv.lock` を更新し、venv にインストールします。

--dev; --group <name>; --optional <extra>; --upgrade; --<specifier>; --editable <path>; --raw; --no-sync; --python <ver>

uv add requests rich
uv add 'requests>=2.32'

バージョン指定子(PEP 440)で依存関係を追加します。シェルでは引用符を推奨します。

uv add 'requests>=2.32,<3'
uv add --dev pytest ruff mypy

dev のみの依存関係を追加します — `pyproject.toml` の `[dependency-groups].dev` の下に入ります。

uv add --dev pytest ruff
uv add --group docs sphinx

名前付き依存関係グループに追加します。複数のグループは `uv sync --group docs --group lint` 経由でインストールできます。

uv add --group lint ruff mypy
uv remove <pkg>

`pyproject.toml`、ロックファイル、venv から依存関係を削除します。

--dev; --group <name>; --optional <extra>

uv remove requests

実行

uv run <cmd>

プロジェクトの virtualenv 内でコマンドを実行します。venv がない場合は自動的に再作成されます。

--with <pkg> 一時的な依存関係を追加; --with-requirements <file>; --no-sync; --locked; --frozen; --isolated; --refresh-package <pkg>; --package <name>

uv run python -m myapp
uv run pytest

プロジェクト venv にインストールされたツールを実行します — 最初に venv をソースする必要はありません。

uv run pytest -x --cov
uv run --with requests python -c 'print(requests.__version__)'

次回のためにキャッシュされる一回限りの依存関係を持つ一時的なスクリプトを実行します。

uv run --with httpx python -c 'import httpx; print(httpx.get("https://example.com").status_code)'
uv run script.py

PEP 723 インライン メタデータを使用する Python スクリプトを実行します(uv は上部にある `# /// script` ブロックを読み取り、その場で解決します)。

--no-sync

uv run ./hello.py

venv の管理

uv venv

プロジェクト virtualenv を `.venv` に作成します。pip + setuptools をバンドルするには `--seed` を使用します。

<path>; --python <ver>; --seed; --no-seed; --prompt <name>; --system-site-packages; --clear; --relocatable

uv venv --python 3.12
uv venv --seed

venv を作成し、pip / setuptools / wheel もインストールします — venv 内の `pip install` ワークフローに必要です。

uv venv --seed --python 3.11
uv remove

プロジェクト venv とロックファイルを削除します。新しく始めるには `uv sync` と組み合わせます。

uv remove && uv sync

CLI ツールの実行

uvx <tool>

一時的な環境で CLI ツールを実行します(`uv tool run` のエイリアス)。ツールは初回使用後にキャッシュされます。

<tool>@<ver>; --from <pkg>; --with <dep>; --upgrade; --quiet

uvx ruff check .
uvx --from 'pycowsay>=2.0' cowsay 'Hello uv!'

特定のパッケージによって公開されるツールを実行します(パッケージ名と CLI 名が異なる場合)。

uvx --from 'sqlfluff' sqlfluff lint models/

ツールのインストール

uv tool install <pkg>

分離された環境にグローバル CLI ツールをインストールします(pipx と同様)。ツールは PATH で利用できるようになります。

--python <ver>; --with <dep>; --reinstall; --quiet; --force

uv tool install ruff
uv tool list

`uv tool install` でインストールされたすべての CLI ツールを一覧表示します。

uv tool list
uv tool uninstall <pkg>

`uv tool install` を介してインストールされた CLI ツールをアンインストールします。

--quiet

uv tool uninstall ruff
uv tool upgrade

インストールされたすべてのツールを最新バージョンにアップグレードします(`uv tool update-self` とピン ファイルを尊重)。1 つのツールをターゲットにするには名前を渡します。

<tool>; --all; --reinstall; --quiet

uv tool upgrade --all

インデックス / キャッシュ

uv cache clean

uv のモジュール キャッシュ(`~/.cache/uv`)をクリアします。完全な再ダウンロードを強制するには `uv sync --refresh` と組み合わせます。

<package>; --force

uv cache clean ruff
uv cache dir

ダウンロードされた wheel に uv が使用するキャッシュ ディレクトリを表示します。

uv cache dir
uv pip install <pkg>

pip 互換モードに切り替えます — 既存のプロジェクトを移行中、またはツールがまだ `pip` を呼び出す場合に便利です。

<pkg>; -r <requirements.txt>; -e <path>; --index-url <url>

uv pip install -r requirements.txt
uv pip compile <in> -o <out>

`requirements.in` を固定された `requirements.txt` に解決します(`pip-tools` と同様)。

uv pip compile requirements.in -o requirements.txt --upgrade

ビルド / 公開

uv build

プロジェクトのソース ディストリビューションと wheel をビルドします(`pyproject.toml` に応じて hatchling / setuptools / poetry core プラグインを使用)。

-o <dir>; --wheel; --sdist; --no-byte-compile

uv build
uv publish

ビルドされたアーティファクトを PyPI(または `--index` を介してカスタム インデックス)にアップロードします。

--token <pypi-token>; --index <name>; --publish-url <url>; --trusted-publishing <on|off>

uv publish --token $PYPI_TOKEN

診断

uv --version

uv のバージョンを表示します。

uv --version
uv help

すべての uv サブコマンドを一覧表示します。

uv help
uv help <subcommand>

1 つのサブコマンドの完全なフラグ リストを出力します。

uv help sync

関連コマンド速查

uv について

uv は Astral(ruff と Python 型チェッカー ty の背後のチーム)によって Rust で書かれた、極めて高速な Python パッケージおよびプロジェクト マネージャーです。2024 年に初めてリリースされた uv は、pip、pip-tools、pipx、pyenv、virtualenv、Poetry / pdm の一部をすべて 1 つのバイナリから置き換えることを目的としています。ダウンロードを並列化し、グローバル モジュール キャッシュ(`~/.cache/uv`)を使用するため、pip より 10-100 倍高速にパッケージをインストールします。uv は標準の `pyproject.toml`(PEP 621)と新しい PEP 723 インライン スクリプト メタデータ(独自の宣言された依存関係を持つ単一ファイル スクリプト)をサポートします。macOS、Linux、Windows で動作し、単一の ~30 MB バイナリ(homebrew / pipx-installer / curl-install.sh / winget)として出荷されます。uv はあなたのコードをどこにもアップロードしません — 構成された Python パッケージ インデックス(`--index-url`、既定は PyPI)とのみ通信します。

チートシート バージョン 1.0.0