Pixiとは?Python/Conda対応の高速パッケージ管理ツール|インストールと使い方
Pixi(ピクシー)は、prefix.devが開発したRust製のパッケージ・環境管理ツールです。Condaエコシステムのパッケージ(conda-forge)とPyPI(pip)の両方を1つのコマンドで扱い、Windows・macOS・Linuxで同じ開発環境を再現できます。イラストSNSの「pixiv」や化粧品ブランドの「Pixi Beauty」とは無関係の、開発者向けツールです。本記事では、Pixiの仕組みと高速性の理由、インストール方法、pixi init/pixi add/pixi runの使い方、設定ファイルpixi.tomlとロックファイルpixi.lock、Condaとの違いまでを公式ドキュメントに沿って解説します。
まとめ|Pixiの要点
- prefix.dev製・Rust実装のパッケージ管理ツール。conda-forge の膨大なパッケージ群とPyPIを統合して扱う。
- 依存解決はCondaの10倍超・micromambaの約3倍速い(公式ベンチマーク)。
- インストールは
curl -fsSL https://pixi.sh/install.sh | shの1行で完了。 - 設定ファイルは
pixi.toml(TOML形式)。環境はpixi.lockに自動固定され再現性が保てる。 - 基本フローは
pixi init→pixi add→pixi run。Condaのbase環境やactivate操作は不要。 - ライセンスはBSD-3-Clauseのオープンソースで無料。
Pixiとは|prefix.devが開発したRust製のパッケージ管理ツール
Pixiは、Mambaの開発を主導したWolf Vollprecht氏が立ち上げたprefix.devによるプロジェクトです。Rust製の依存解決エンジン「Rattler」を基盤とし、Condaパッケージ(既定チャネルはconda-forge)とPyPIパッケージを同じ設定ファイルで管理します。Pythonに限らずC/C++・R・Rustなど多言語のライブラリを扱え、Apple Siliconを含むWindows・macOS・Linuxで動作します。ライセンスはBSD-3-Clauseで、無料で利用できます。Condaが抱えていた「依存解決の遅さ」「ロックファイル非対応」「base環境の煩雑さ」を解消することを狙ったツールです。
Pixiが高速な理由|Rust実装でCondaの10倍・micromambaの約3倍
Pixiの高速性は、Rustで実装されたネイティブな依存解決とダウンロードの並列処理にあります。公式ブログのベンチマークでは、環境をゼロから解決・インストールする処理で、Pixiはmicromambaの約3倍、Condaの10倍以上高速とされています。conda依存はRattler、PyPIパッケージはRust製リゾルバ(uv)で解決し、いずれも並列処理するため、数千パッケージ規模の環境でも構築時間を短縮できます。数値は公式ベンチマーク条件での比較で、環境によって変わるため実際の速度は自身の環境で確認してください。
Pixiのインストール方法|Windows・macOS・Linux共通
公式インストールスクリプトが最も手軽です。macOS・Linuxは次の1行を実行します。
curl -fsSL https://pixi.sh/install.sh | sh
スクリプトはPixiのバイナリを ~/.pixi/bin に配置し、シェルの起動スクリプトにPATHを追加します。WindowsはPowerShellでの公式スクリプトのほか、次のようにパッケージマネージャ経由でも導入できます。
| 導入経路 | コマンド |
|---|---|
| Homebrew(macOS / Linux) | brew install pixi |
| conda-forge | conda install -c conda-forge pixi |
導入後は pixi --version でバージョンを確認できます。Pixiは単体のバイナリで動くため、Condaのようにbase環境をシェルへ常駐させる必要はありません。
Pixiの基本的な使い方|init・add・runの3ステップ
pixi init|ワークスペース作成とpixi.tomlの生成
pixi init hello-world を実行すると、プロジェクト用のディレクトリと設定ファイル pixi.toml が生成されます。既存のPythonプロジェクトでは、pyproject.toml の [tool.pixi] セクションに設定を書く方法も選べます。pixi.toml にはチャネル・対応プラットフォーム・依存関係・タスクを記述します。
pixi add|依存パッケージ(condaとPyPI)の追加
依存関係は pixi add で追加します。conda-forgeのパッケージもPyPIのパッケージも同じコマンドで扱えます。
pixi add python numpy
pixi add --pypi requests
Pythonのバージョンを固定したい場合は pixi add "python=3.12" のようにバージョン指定します。追加した内容は pixi.toml に反映され、解決結果は pixi.lock に記録されます。
pixi runとpixi shell|タスク実行と環境に入る
pixi run は環境を自動でセットアップしてからコマンドを実行します。pixi run python app.py のように直接実行するか、pixi.toml に定義したタスク名で pixi run start と呼び出します。対話的に環境へ入りたいときは pixi shell を使います。いずれもCondaのような事前のactivateは不要です。
pixi.tomlとpixi.lock|設定ファイルと環境再現性の仕組み
Pixiの設定ファイルはTOML形式の pixi.toml です(YAML形式の「pixi.yaml」は存在しません)。ここにチャネル・プラットフォーム・依存関係・タスクを宣言します。依存を追加・更新すると、解決された全パッケージの正確なバージョンが pixi.lock に自動で書き出されます。pixi.lock はCondaパッケージとPyPIパッケージの両方を同一ファイルで固定するため、別のマシンやチームメンバー間でも同じ環境を再現でき、「自分の環境では動く」問題を防げます。pixi.toml と pixi.lock をバージョン管理に含めるのが基本です。
Pixiのタスクランナー機能|pixi taskで開発を自動化
Pixiは依存管理だけでなく、タスクランナーを内蔵しています。pixi task add start "python app.py" のようにタスクを登録すると、pixi.toml に保存され、pixi run start で実行できます。タスクはクロスプラットフォームで動くため、MakefileやOS依存のシェルスクリプトを用意しなくても、ビルド・テスト・起動といった開発ワークフローを統一できます。タスク同士に依存関係を持たせて連鎖実行することも可能です。
pixi globalとPyPI連携|CLIツールのグローバル導入とpip資産の活用
pixi global install|CLIツールを専用環境でグローバル導入
プロジェクトに紐づかないCLIツールは pixi global install ripgrep gh のようにグローバル導入できます。各ツールは隔離された専用環境に入るため、依存の衝突を避けられます。挙動はpipxやcondaxに近く、システム全体で使うコマンドラインツールの管理に向いています。
PyPIパッケージの利用|uvによる解決でpip資産を取り込む
conda-forgeに無いパッケージはPyPIから取り込めます。pixi add --pypi requests のように追加すると、Pixiは内部でRust製リゾルバ(uv)を使ってPyPI依存を解決し、conda側の依存と一緒に pixi.lock へ固定します。これにより、Condaパッケージとpipパッケージを混在させても再現性を保てます。
CondaとPixiの違い|移行のメリットと使い分け
PixiはConda互換のパッケージ資産(conda-forge)をそのまま使いながら、速度・再現性・操作性を改善したツールです。主な違いを整理します。
| 観点 | Conda / Mamba | Pixi |
|---|---|---|
| 実装 | Python / C++ | Rust |
| 依存解決の速度 | 基準 | Condaの10倍超 |
| ロックファイル | 標準では非対応 | pixi.lockを自動生成 |
| PyPI統合 | pipを別途併用 | uv経由で一体管理 |
| 環境操作 | base環境・activateが必要 | activate不要・プロジェクト単位 |
| 設定ファイル | environment.yml | pixi.toml |
新規プロジェクトや、チームで環境を厳密に再現したい場合はPixiが有利です。一方、社内標準がすでにCondaで固まっている、大量の既存environment.ymlや独自チャネルの運用がある、といった場合は移行コストが上回ることがあり、無理に乗り換える必要はありません。pipとCondaの使い分けそのものに迷う場合は、pipとcondaの違いと使い分けもあわせて確認してください。
よくある質問(FAQ)
Pixiは無料ですか?ライセンスは何ですか?
無料です。PixiはBSD-3-Clauseライセンスのオープンソースソフトウェアで、商用・個人を問わず利用できます。
PixiとCondaはどちらを使うべきですか?
新規開発や再現性を重視するならPixiが有力です。既存のCondaワークフロー・大量のenvironment.yml・独自チャネル運用が定着している場合は、Condaを継続するほうが移行コストを抑えられます。PixiはConda互換パッケージを使えるため、一部プロジェクトから段階的に試すこともできます。
PixiでPythonのバージョンは指定できますか?
できます。pixi add "python=3.12" のようにバージョンを指定して追加すると、その版が pixi.lock に固定されます。プロジェクトごとに異なるPythonバージョンを持たせられます。
設定ファイルは「pixi.yaml」ですか?
いいえ。Pixiの設定ファイルはTOML形式の pixi.toml です。「pixi.yaml」というファイルは存在しません。Pythonプロジェクトでは pyproject.toml の [tool.pixi] に設定を記述することもできます。
prefix.devのPixiは、pixivや化粧品ブランドのPixiと同じものですか?
別物です。本記事のPixiはprefix.devが開発したパッケージ管理ツールで、イラストSNSの「pixiv」や化粧品ブランドの「Pixi Beauty」とは関係ありません。