Open3
【pythonパッケージマネージャー】uvの使い方/仮想環境構築などについて📝

pythonパッケージマネージャー: uvとは?
uvのセットアップ📝
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Homebrew
brew install uv
Pythonのインストール
uv python install 3.12
uv python list
プロジェクトの作成
uv init
パッケージ追加 (依存関係にも追加する)
uv add パッケージ名

uv venv
を使った仮想環境構築について📝
uv venv
は、Pythonのパッケージ管理ツールであるuv
を使用して仮想環境(virtual environment)を作成するコマンドです。
仮想環境は、プロジェクトごとに独立したPython環境を構築し、パッケージの依存関係を管理するために使われます。
これにより、違うプロジェクト間でパッケージのバージョン衝突を防ぎ、環境をクリーンに保つことができます。
uv venv
の役割
-
仮想環境の作成:
uv venv
を実行すると、指定したディレクトリ(デフォルトでは.venv
)に仮想環境が作成されます。- この環境には、独立したPythonインタプリタと
pip
が含まれます。
- この環境には、独立したPythonインタプリタと
- 依存関係の隔離: 仮想環境内にインストールしたパッケージは、システム全体や他のプロジェクトに影響を与えません。
-
高速なセットアップ:
uv
は高速なパッケージ管理ツールで、仮想環境の作成や依存関係の解決が非常に効率的です。
Pythonファイルの実行に必要か?
必須ではありませんが、強く推奨されます。
-
必要でない場合:
- シンプルなスクリプトで、システムにインストール済みのPythonと必要なパッケージがすでにグローバル環境にある場合、仮想環境なしでPythonファイルを実行できます。
- 例:
python script.py
で実行可能。
-
仮想環境が推奨される理由:
- 依存関係の管理: プロジェクトごとに違うバージョンのパッケージが必要な場合、仮想環境を使わないとバージョンの競合が発生する可能性があります。
- 環境の再現性: 他の開発者や本番環境で同じ環境を再現しやすくなります。
- システムの保護: グローバル環境にパッケージをインストールすると、システムのPython環境を壊すリスクがあります。
- 開発のベストプラクティス: 仮想環境を使うのは、Python開発の標準的な手法です。
uv venv
の基本的な使い方
-
仮想環境を作成:
uv venv
デフォルトで
.venv
ディレクトリに仮想環境が作成されます。 -
仮想環境を有効化:
- Linux/macOS:
source .venv/bin/activate
- Windows:
.venv\Scripts\activate
- Linux/macOS:
-
パッケージのインストール:
uv pip install <パッケージ名>
-
Pythonファイルの実行:
仮想環境が有効化された状態で、通常通りpython script.py
を実行します。 -
仮想環境の終了:
deactivate
結論
Pythonファイルを実行するだけであれば、仮想環境は必須ではありません。
ただし、依存関係の管理や環境の分離、再現性を確保するために、uv venv
を使った仮想環境の利用が強く推奨されます。
特に、複数のプロジェクトを扱う場合や、他の開発者と協業する場合は、仮想環境を使うのがベストプラクティスです。

uv pip install xxxxx と uv add xxxxx の違いは?
uv pip install pillow
と uv add pillow
は、Pythonのパッケージ管理ツール uv
を使ったコマンドですが、目的と動作に明確な違いがあります。以下にその違いを簡潔に説明します。
uv pip install pillow
1. -
目的: 指定したパッケージ(この場合は
pillow
)を現在のPython環境にインストールします。 -
動作:
-
pillow
を直接インストールする。 - 依存関係も自動的に解決・インストールされる。
- プロジェクトの依存関係を管理するファイル(例:
pyproject.toml
やrequirements.txt
)には何も記録されない。 - 現在の仮想環境やグローバル環境にインストールされる(環境に応じて)。
-
-
使用ケース:
- 一時的にパッケージをインストールしたい場合。
- プロジェクトの依存関係ファイルに記録せずに、すぐに使いたい場合。
-
例:→
uv pip install pillow
pillow
が環境にインストールされるが、pyproject.toml
には追加されない。
uv add pillow
2. -
目的: パッケージ(
pillow
)をプロジェクトの依存関係として追加し、依存関係管理ファイル(通常はpyproject.toml
)に記録します。 -
動作:
-
pillow
を現在の仮想環境にインストールする。 - 依存関係を
pyproject.toml
(または他の設定ファイル)に記録する。 - プロジェクトの依存関係を明示的に管理し、再現性を確保する。
- 依存関係のバージョンや制約も適切に扱う。
-
-
使用ケース:
- プロジェクトに長期的に必要なパッケージを追加する場合。
- 依存関係をバージョン管理し、他の開発者や環境で同じ依存関係を再現したい場合。
-
例:→
uv add pillow
pillow
が環境にインストールされ、pyproject.toml
に以下のようなエントリが追加される:[project.dependencies] pillow = "^10.0.0" # バージョンは例
主な違い
項目 | uv pip install pillow |
uv add pillow |
---|---|---|
依存関係ファイルへの記録 | 記録しない |
pyproject.toml に記録 |
目的 | 一時的なインストール | プロジェクトの依存関係管理 |
再現性 | 低い(手動で再インストールが必要) | 高い(依存関係ファイルで管理) |
使用シーン | テストや一時利用 | プロジェクト開発 |
補足
-
uv
は高速でモダンなPythonパッケージ管理ツールであり、pip
の代替として動作しますが、uv add
は依存関係管理に特化した役立つ機能を提供します。 -
uv add pillow
は、uv pip install pillow
の動作を含む(インストールも行う)が、依存関係ファイルへの記録が追加される点が大きな違いです。 - プロジェクト開発では、
uv add
を使うことで依存関係の管理が容易になり、チーム開発やCI/CDでの再現性が向上します。
結論
-
一時的に
pillow
を使いたい:uv pip install pillow
-
プロジェクトに
pillow
を依存関係として追加したい:uv add pillow