はじめに
私のPython開発環境構築〜準備編その1でも書きましたが、anacondaの代替環境として、uvによってPython開発環境を構築していました。その後、色々と調べていくうちに、Pixiというパッケージマネジャーを見つけたので触ってみました。Homebrew・uv・Pixiの詳細については、それぞれのウェブサイトを参照ください。
Homebrew
uv
Pixi
パッケージのインストール場所
Homebrew・uv・Pixiは、それぞれパッケージのインストール場所が異なります。
-
Homebrew:
/opt/homebrew/
以下にインストールされる -
uv:
.venv/
以下 -
Pixi:
.pixi/
以下
HomebrewがRPMやaptのようなシステム全体のパッケージマネジャーであるのに対して、uvとPixiはプロジェクトに強く結びついています。uvとPixiでも、tool
やglobal
オプションを使えば、globalにパッケージをインストールできます。それでもインストール先はhomeディレクトリ以下です。
Homebrewは、原則的に個人ユースを前提としており、一つのPCを複数のアカウントでの利用を想定していないので、homeディレクトリの外にある構成となっているのだと思います。
一方uvとpixiでは、思想的にプロジェクト毎の環境再現性に重点を置いているので、インストールパッケージの重複を許容して(諦めて)いるのだと思います。
自分なりの使い分け
Homebrew・uv・Pixiの主な特徴を比較表にまとめました。
比較表
ツール | 主な用途 | 管理対象 | パッケージ |
---|---|---|---|
Homebrew | macOS/Linuxのシステムパッケージ管理 | CLI/GUI全般 | 独自repo |
uv | Python仮想環境+高速パッケージ管理 | Python | PyPI |
Pixi | 複数言語対応の仮想環境+再現性重視管理 | Python+他言語 | Conda+PyPI |
使い分け
- Homebrew: システム全体のアプリやツール導入に。基本的にスタンドアロンで動くコマンドやアプリケーション(例: uvやPixi、gitなど)。
- uv: Python専用の仮想環境・パッケージ運用に。小規模なPythonプロジェクト。
- Pixi: Pythonだけでなく、RustやC/C++など多言語・複雑な依存性も必要な科学・開発分野に。大規模な開発プロジェクトやconda-forgeのみにあるパッケージが必要なもの。
Pythonのパッケージ管理については、Pixiは中でuvを使用しているので、いずれ統合されるかもしれません。