uvコマンドまとめ

2026-02-14

Python
uv

これまでPythonの環境構築といえば、pyenv でPythonのバージョンを管理し、venvvirtualenv で仮想環境を作り、pip でパッケージを入れる……というのが定番でした。あるいは Poetry を使っている方も多いでしょう。

しかし、Rust製のツール uv がアップデートにより「Python自体のバージョン管理」にも対応したことで、uvだけで全てが完結するようになりました。しかも、爆速です。

今回は、pyenvからuvへ乗り換える際に知っておくと便利なコマンドを、用途別にまとめました。

なぜ uv に乗り換えるのか?

  1. 圧倒的に速い: コマンドの実行速度が桁違いです。
  2. All-in-One: Pythonのインストール、仮想環境、パッケージ管理、ツール実行(pipx相当)がこれ1本。
  3. ディスク容量の節約: プロジェクト間でパッケージをリンクして使い回すため、ストレージに優しい。

pyenv ユーザーのための uv コマンド対応表

まずは、これまで pyenv でやっていた操作が uv でどうなるのか、対応表で見てみましょう。

目的 pyenv コマンド uv コマンド 備考
利用可能バージョンの確認 pyenv install --list uv python list --only-downloads インストール可能なものを表示
インストール済み確認 pyenv versions uv python list
Pythonのインストール pyenv install 3.12.0 uv python install 3.12 3.12系最新が入ります
プロジェクトのバージョン指定 pyenv local 3.12.0 uv python pin 3.12 .python-version ファイルが生成されます
仮想環境の作成 python -m venv .venv uv venv 自動でプロジェクトのPythonを使用

こうして見ると、直感的に移行できることがわかります。

用途別 uv コマンドチートシート

1. Python のバージョン管理

uvは、必要に応じてPythonを自動でダウンロードしてくれますが、明示的に管理することも可能です。

# 特定のバージョンのPythonをインストール
uv python install 3.12

# インストールされているPythonの一覧
uv python list

# 古くなったPythonバージョンを削除(掃除)
uv python uninstall 3.11

2. プロジェクトの初期化と管理(Poetryのような使い方)

最近のモダンな開発フローでは、uv init から始めるのが基本です。

# プロジェクトの作成(カレントディレクトリ)
uv init

# 依存パッケージの追加(pip install に相当)
uv add requests
uv add flask

# 開発用パッケージの追加
uv add --dev pytest black

# 依存関係の同期(lockファイルの内容をvenvに反映)
uv sync

uv add を実行すると、自動的に仮想環境(.venv)が作られ、pyproject.tomluv.lock が更新されます。

3. スクリプトやツールの実行

仮想環境を source .venv/bin/activate で有効化しなくても、uv run を使えばその環境で実行できます。

# プロジェクトの環境でスクリプトを実行
uv run main.py

# 登録したコマンドを実行(例: pytest)
uv run pytest

4. グローバルツールの実行 (pipx の代替)

pipx のように、CLIツールを一時的に実行したり、インストールしたりする機能も強力です。uvx というエイリアスが便利です。

# インストールせずにツールを一時実行 (uv tool run のエイリアス)
uvx ruff check .
uvx cowsay "Hello uv!"

# ツールをシステムにインストール
uv tool install black

pyenv からの移行ステップ

すでに pyenv を使っている場合、以下の手順でスムーズに移行できます。

  1. uv のインストール:
    Mac/Linux: curl -Ls https://astral.sh/uv/install.sh | sh
  2. シェルの設定変更:
    .zshrc.bashrc にある pyenv init などの記述を削除またはコメントアウトします。
  3. プロジェクトでの切り替え:
    既存のプロジェクトディレクトリで uv init し、uv python pin <version> でバージョンを指定し直します。

まとめ

uv は単なるパッケージインストーラーから、Python開発の統合マネージャーへと進化しました。「pyenv + venv + pip」や「Poetry」を使っている方は、ぜひ一度 uv を試してみてください。その速さと手軽さに、きっと戻れなくなるはずです。