【ぴっぴっくす】

pipx とは?

最終更新:
💡 Python製CLIを専用環境で管理

Python製のCLIツールを、ツールごとの仮想環境にインストールして管理するツール。Black・Ruff・Poetryなどのコマンドを、環境を毎回有効化せずに使えるようにする。

📌 このページのポイント
pipx:ツールごとに環境を作る 同じ環境を共有する例 ツールA ライブラリ v1 が必要 ツールB ライブラリ v2 が必要 同じライブラリの固定版を両立できない pipxが専用環境を管理 Aの仮想環境 ライブラリ v1 が必要 Bの仮想環境 ライブラリ v2 が必要 別環境なら各ツールの要求を分けられる 仮の依存関係の例。pipも仮想環境内で使える
pipxは環境の作成とコマンドの公開を管理する。同じ環境の依存関係まで無条件に解決するわけではない。
ひよこ ひよこ
pipxって何?pipとどう違うの?
ペンギン先生 ペンギン先生
pipはPythonパッケージをインストールするツールで、仮想環境の中でも使えるよ。pipxはCLIツールごとに環境を作り、コマンドを呼び出せるようにする作業をまとめて管理する。pipを使うと必ずグローバル環境に入る、という区別ではないんだ
ひよこ ひよこ
依存関係の衝突をどう避けるの?
ペンギン先生 ペンギン先生
仮にAがあるライブラリのバージョン1だけ、Bがバージョン2だけを要求すると、同じ環境では両立できないよ。pipxで別々の環境に入れれば、それぞれが必要なバージョンを使える。ただし、同じ環境内の依存関係まで無条件に解決するわけではないんだ
ひよこ ひよこ
どんなツールを入れるの?
ペンギン先生 ペンギン先生
BlackやRuff、Poetryなど、コマンドとして使うPython製ツールが例だよ。pipxで入れたツールのライブラリは、その専用環境に置かれる。自分のプロジェクトでimportするライブラリを追加したいなら、プロジェクトの環境へインストールするんだ
ひよこ ひよこ
インストールしたコマンドはどう使うの?
ペンギン先生 ペンギン先生
例えばpipx install blackで入れたら、公開されたblackコマンドを呼び出すよ。専用環境を毎回有効化する必要はない。ただし、コマンドを公開するディレクトリがPATHに入っている必要があるんだ
ひよこ ひよこ
uvとはどう使い分けるの?
ペンギン先生 ペンギン先生
uvにもuv tool installでツールを専用環境へ入れたり、uv tool runで実行したりする機能があるよ。隔離した環境でCLIを使うという目的は重なるけれど、全機能が同じという意味ではない。使うコマンドや管理方法を公式資料で確かめよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「pipx」って出てきたら「Python製CLIを専用の環境に入れて管理するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「pipx」 = Python製アプリのインストール・実行を助けるツール名
💬 公式紹介では、Python製のコマンドを利用するためのツールとして説明されているよ。プロジェクトはpipsiやnpxから着想を得たと紹介しているんだ

参考資料

← 用語集にもどる