【ぴっぴっくす】

pipx とは?

💡 PythonツールをクリーンにグローバルインストールするCLI管理ツール
📌 このページのポイント
pipx — CLIツールを隔離する仮想環境マネージャー pip install(グローバル直接インストール)— 依存関係が衝突する pip グローバルPython環境 ツールA requests 2.28 ツールB requests 2.25 依存関係の衝突! どちらかが壊れる pipx install(隔離インストール)— ツールごとに独立した仮想環境 pipx 仮想環境 A(自動作成) ツールA requests 2.28(独立) 仮想環境 B(自動作成) ツールB requests 2.25(独立) 依存関係の衝突なし — グローバル環境を汚染しない
pipxによるCLIツールの隔離インストール
ひよこ ひよこ

pipxって何?pipとどう違うの?

ペンギン先生 ペンギン先生

pipはパッケージをインストールするツールで、pipxは特にCLIツールを安全にインストールするために特化したツールだよ。pipで直接グローバル環境にツールをインストールすると、ツール同士の依存関係が衝突したり、プロジェクトの環境を壊してしまうことがあるんだ。

ひよこ ひよこ

衝突ってどういう状況で起きるの?

ペンギン先生 ペンギン先生

たとえばツールAがrequests 2.28を必要とし、ツールBがrequests 2.25を必要とする場合、どちらかしか使えなくて片方が壊れるんだよ。pipxはツールごとに専用の仮想環境を自動で作って、互いに完全に隔離してくれるんだ。

ひよこ ひよこ

どんなツールをpipxでインストールするの?

ペンギン先生 ペンギン先生

コードフォーマッターのBlackやRuff、型チェッカーのmypy、パッケージ管理ツールのpoetryなど、複数のプロジェクトで共通して使うCLIツールが典型的だよ。プロジェクト固有の依存関係pip仮想環境で管理して、ツール類はpipxに任せるという使い分けが一般的だね。

ひよこ ひよこ

uvが出てきたらpipxは不要になるの?

ペンギン先生 ペンギン先生

uvには`uv tool install`コマンドという、pipxと同等の機能が追加されているよ。uv一本でパッケージ管理もCLIツール管理も完結するようになってきているんだ。ただpipxも安定していてドキュメントが豊富なので、今すぐ移行を迫られるわけではなく、チームの方針で選べばいいよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「pipx」って出てきたら「Pythonツールをクリーンに隔離してインストールするためのツールのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「pipx」 = (pip + x の造語。xは「実行可能ファイル」を意味するexecutableのx)
💬 pipで実行可能CLIツール(executable)を安全に扱えるようにした「pip + x」という意味の名前だよ
← 用語集にもどる