uv をつかう

uv

インストール

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

公式リポジトリでもよい。

sudo pacman -S uv

Pythonバージョンの管理

Python自体のインストールや管理ができる。

  • Pythonのインストール: uv python install 3.1X
  • 利用可能なバージョンの確認: uv python list
  • 特定のバージョンをプロジェクトに固定: uv python pin 3.1X

プロジェクト管理

プロジェクト単位での依存関係を管理できる。pyproject.tomlと、プラットフォームに依存しないuv.lockファイルを使用する。

  • プロジェクトの初期化: uv init {name}
  • 依存関係の追加: uv add {packeges}
  • 仮想環境の構築と適用: uv sync
  • コマンドの実行: uv run python main.py

スクリプトの実行

単一のPythonファイルに対して、一時的な仮想環境を作成して実行できる。スクリプト内に依存関係を記述(PEP 723)している場合、uvはそれを自動的に解決する。

  • スクリプトの実行: uv run script.py
  • 一時的な依存関係の追加: uv run --with rich script.py
  • メタデータの追加: uv add --script script.py requests
# /// script
# dependencies = [
#   "requests",
# ]
# ///

ツールの管理

pipxのように、Pythonパッケージとして公開されているCLIツールを、独立した環境にインストールして利用できる。

  • 一時的な実行: uvx ruff check
  • 永続的なインストール: uv tool install ruff

pipインターフェース

既存のpipコマンドとの互換性を持つインターフェースも提供されている。既存のワークフローを維持したまま、高速化の恩恵を受けることができる。

  • パッケージのインストール: uv pip install -r requirements.txt
  • 依存関係のコンパイル: uv pip compile requirements.in -o requirements.txt