pixi は次世代 Python パッケージマネージャ。

  • conda, mamba の置き換えが可能
    • 仮想環境をつくり、conda/mamba (=conda-forge) のパッケージおよび pip (=PyPI) のパッケージを一括で管理することができる。
    • uvuv pip と異なり、環境内に本物と同じ pip コマンドをそのまま入れることができるので問題も発生しにくい
  • conda-forge からダウンロードできる幅広いツールを入れることができる
  • global 環境にインストールすることによりどこでもコマンドを実行できるようになるため、apt, homebrew のような役割も果たせる。
    • global というが、すべてのファイルは $HOME/.pixi に落とされるので、パッケージはユーザーごとに管理される。
    • pixi 公式のインストールスクリプトは、本質的にはこのディレクトリを作りこのディレクトリにパスを通している
    • なのでこのディレクトリ自体を消すだけで pixi 全体がアンインストールされる。簡単!

パッケージを global 環境にインストール

上に書いたように pixi はホーム以下にパッケージを落とすので、ここで言う global とはシステム全体という意味ではなく「特定のプロジェクト内だけではない」という意味。

インストールするには pixi global install xxx 。インストールしたコマンドは $HOME/.pixi/bin にバイナリが配置されるのでこれを PATH に加える。

conda-forge が丸ごと使えるので有名どころはインストールできる。

  • nvim, fish, fzf, yazi, fd, zellij など
  • fd が fd-find になっていたりと、パッケージ名とがコマンド名が違うことが時々あるので conda-forge を検索する。
    • ex. pixi search '*fd*'fd-find を見つけた後、 pixi search fd-find をすると詳細な情報を見られる

環境のバックアップ・復元

インストールされたシェルツールのリストは $HOME/.pixi/manifests/pixi-global.toml に保存されている。これをバックアップしておけば、新しい PC にコピーしてきて

pixi global sync

で開発環境をすぐに再現することができる。

cf. pixi global でシェルツールを華麗に管理する

conda/mamba を置き換え、仮想環境マネージャとして使う

Conda と比較したときのコマンドの対応表が Conda/Mamba - Pixi by prefix.dev にある。
シナリオごとにまとめ直すと以下のとおり

仮想環境の作り方

pixi init env_name
cd env_name && pixi shell # env_name環境での新たなシェルを起動。
pixi add python=3.12 # バージョンは好きに選ぶ。 `which python3` でこの環境のpython3が使えることを確認
python3 -m ensurepip # これでpip3が使えるようになる。`which pip3` で同様に確認

仮想環境を起動する

cd env_name && pixi shell # env_name環境での新たなシェルを起動。
pip3 install <pypi packages> # PyPIのパッケージが使える
pixi add <conda-forge packages> # conda-forgeのパッケージも使える
python3 ... # コマンドを実行

もし conda activate のように、既存のシェルを保ったまま仮想環境に入りたい場合は

eval "$(pixi shell-hook)"

とする。(Shell - Pixi by prefix.dev)
または、

pixi run python3 ...

のようにすることで、直接仮想環境でプログラムを実行することができる。

環境を一度消してやり直す

pixi clean -e env_name

さらに詳しく

より詳しい pixi の活用法について、以下が参考になる