💨

uvによるPythonのバージョン管理とパッケージ管理

2024/12/08に公開

本記事の概要

本記事では、Pythonのバージョン管理やパッケージ管理のためのツールであるuvについて解説します。具体的には、uvのインストール方法、基本的な使い方、プロジェクト管理の方法などをWindows環境での実行例を交えながら説明していきます。

uvとは

uvは、Pythonのバージョン管理とパッケージ管理を効率的に行うためのツールで、Rustで実装されています。高速性と使いやすさが特徴であり、従来のpipやvenv、poetryなどのツールに代わる存在として注目されています。

前提とする環境

本記事において前提としている環境を次に示します。

  • OS: Windows 11
    • バージョン: 23H2
    • 64ビットオペレーティングシステム、x64ベースプロセッサ

uvのインストール方法

uvをインストールするには、コマンドプロンプトを起動し、次のコマンドを実行します。

pip install uv

なお、インストール方法は他にも提供されており、公式ガイドで詳しく解説されています。

インストールが完了したら次のコマンドを実行して正常にインストールできていることを確認します。

uv

期待される出力:

An extremely fast Python package manager.

Usage: uv [OPTIONS] <COMMAND>

Commands:
  run      Run a command or script
  init     Create a new project
  add      Add dependencies to the project
  remove   Remove dependencies from the project
  sync     Update the project's environment
  lock     Update the project's lockfile
  export   Export the project's lockfile to an alternate format
  tree     Display the project's dependency tree
  tool     Run and install commands provided by Python packages
  python   Manage Python versions and installations
  pip      Manage Python packages with a pip-compatible interface
  venv     Create a virtual environment

--- 以下、省略 ---

Pythonバージョン管理における主要なコマンド

Pythonバージョン管理における主要なコマンドとしては、次のようなものがあります。

# Pythonのインストール
uv python install

# インストール済みのPythonバージョンの確認
uv python list

# Pythonの実行可能ファイルの検索
uv python find

# Pythonのバージョン変更
uv python pin

インストールとバージョン変更の実行例:

# インストールの実行例
uv python install 3.12

# バージョン変更の実行例
uv python pin 3.12

詳細は公式ガイドに記載されています。

プロジェクト管理の基本的な手順

プロジェクト管理のための基本的な手順を説明します。
まず、コマンドプロンプト上で次のコマンドを順番に実行し、新規プロジェクトを作成します。

# ディレクトリを配置する場所に移動する
cd C:\Users\username\Projects

# 新規プロジェクトの作成
uv init my-project

新規プロジェクトを作成すると、次のファイルが生成されます。

└─my-project
        hello.py
        pyproject.toml
        README.md

生成されたpyproject.tomlは次のようになっています。

pyproject.toml
[project]
name = "my-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = []

使用したいPythonのバージョンが決まっている場合は、pyproject.tomlの次の箇所を書き換えます。

requires-python = ">=3.12"

書き換えたpyproject.tomlの内容を反映するにはuv syncを実行します。なお、uv syncを実行すると仮想環境として.venvが作成されます。

uv sync

パッケージを追加したい場合はuv addを使います。

uv add seaborn

再度、uv syncを実行し、反映させます。

uv sync

uv syncで同期するとpyproject.tomlに変更が適用されます。

pyproject.toml
[project]
name = "my-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "seaborn>=0.13.2",
]

その他の詳細は公式ガイドのCreating projectsのページWorking on projectsのページに記載されています。

仮想環境の作成とactivate~deactivate

uvによる仮想環境の作成とactivate~deactivateの操作は次の記事で解説しています。
https://zenn.dev/enlog/articles/ca13ff8dfe0a22

スクリプトの実行

スクリプトの実行には、次のコマンドを実行します。

# スクリプトの実行
uv run

# 具体例
uv run example.py

詳細は公式ガイドに記載されています。

まとめ

本記事では、Pythonのバージョン管理とパッケージ管理のためのツールであるuvについて、以下の内容を解説しました。

  • uvの概要
  • インストール方法
  • Pythonバージョン管理における主要なコマンド
  • プロジェクト管理の基本的な手順
  • スクリプトの実行方法

uvは、従来のツールと比較して高速で直感的な操作が可能であり、特にプロジェクト管理における依存関係の管理が簡潔に行えます。Pythonの開発環境構築やプロジェクト管理において、uvは有効な選択肢の一つになると考えられるため、今後のアップデートや機能追加に注目していきたいです。

参考記事

https://docs.astral.sh/uv/
https://zenn.dev/turing_motors/articles/594fbef42a36ee
https://gihyo.jp/article/2024/09/monthly-python-2409

Discussion