はじめに
最近、研究用にPythonのパッケージ管理をしたくなり、色々あさっていたところuvというRust製の高速パッケージ管理ツールに辿り着いた。ただ、古いpip依存のパッケージのインストールができず泣く泣く断念しかけたところ、Pixiというconda型パッケージ管理ツールに出会った。ビビッと来たものがあったので、今回はその魅力をご紹介!!
古くてuvでのインストールを断念したパッケージはこちら
pipとconda
Pythonでパッケージ管理をする人にとって誰もが知ってるであろうパッケージ管理ツールにpipとcondaがある。あまり違いをわかっていない人も多いので違いをまとめてみた。
| 項目 | pip | conda |
|---|---|---|
| 管理対象 | Pythonパッケージのみ | Python + 他言語のパッケージ |
| リポジトリ | PyPI (Python Package Index) | Conda (Anaconda, conda-forge) |
| 依存関係解決 | 単純 | 高度 |
| 速度 | 標準的 | 遅い |
| 用途 | Web開発 | データサイエンス・機械学習 |
condaはPython以外のパッケージや仮想環境を扱うことができて便利である一方で、動作が一般的に遅いことが知られている。一方でpipはPythonのパッケージのみを扱うことを目的としており、condaと比べて軽量で高速である一方、仮想環境管理はvenvなど他のツールと組み合わせる必要がある。
Pixiとは
-
Pixiは軽量・高速・直感的をコンセプトに登場したconda型パッケージ管理ツール - Pythonのパッケージ管理にとどまらず、他のプログラミング言語にも対応
従来ツールとの比較
| 項目 | pip | uv | conda | Pixi |
|---|---|---|---|---|
| リポジトリ | PyPI | PyPI | Conda | Conda + PyPI |
| 管理対象 | Pythonのみ | Pythonのみ | Python + 他言語 | Python + 他言語 |
| 速度 | 標準的 |
|
遅い |
|
| 安全性 | 低い |
|
|
|
| 依存関係解決 | 単純 | 単純 |
|
|
PixiはRust製であることで高速化を実現し、pipとcondaのいいとこどりをしたパッケージ管理であることがわかる。またPixiでは他のパッケージ管理ツールではあまり実装されていない、タスクランナー機能を持ち合わせており、よく使うコマンド群を簡単にまとめることもできる!
インストール方法
以下のような形でインストールできる。詳しくは公式ドキュメントを参照。
Linux or macOS
curl -fsSL https://pixi.sh/install.sh | bash
Windows
powershell -ExecutionPolicy ByPass -c "irm -useb https://pixi.sh/install.ps1 | iex"
powershell -c "irm -useb https://pixi.sh/install.ps1 | more"
pixiの詳しい使い方や便利機能については本記事では割愛したいと思う。
また別の記事で書いて公開しようと思うのでお楽しみに。
まとめ
- 軽量・高速・直感的を目指す
Pixiは、pipとcondaのいいとこ取りをした強力なパッケージ管理ツール - Rust製特有の高速性と安全性が大きな魅力
- チーム開発で重宝されるタスクランナー機能も持ち合わせている
- Python以外の言語を使ったプロジェクトでも活躍の可能性大
パッケージ管理で悩んでいるなら、次世代パッケージ管理ツールPixiをぜひ一度試してみてください!