Pythonの便利なコマンド、パッケージなどアプリをインストールする際に、どこにインストールしてどのように管理するかは悩む部分かと思いますが。
pipxを利用するとこれらをいい感じに隔離した環境にインストールして管理してくれるようです。
ここではWindows環境にpipxをインストールして、パッケージをインストールして管理してみます。
本記事で利用している環境
- Windows 23H2
- Python 3.12.1
- pip 24.0
ドキュメントなど
前提条件の確認
Installation System Requirements
2024年5月現在、python 3.7以上を利用する必要があるようです。
またpipを利用したインストールでは、pipのバージョンはrequires pip 19.0 or laterとなっていました。
Windowsにpipxをインストールする
Windowsでのpipxを利用するには、下記の3種類があるようです。
- Scoopを利用してインストール
- pipを利用してインストール
- インストールせずにzipappで利用
今回はpipを利用してインストールしてみます。
# If you installed python using Microsoft Store, replace `py` with `python3` in the next line.
py -m pip install --user pipx
上記コマンドを実行してインストールします。
Windowsのpy.exe(pythonランチャー)を利用し、-mオプションでモジュールとして pip install --user pipx
を実行しています。
pipの-userオプションを利用するとインストールするパッケージを、現在のユーザーだけが使えるようにpipxをインストールします。
-userオプションを利用しているので、ユーザーディレクトリ配下の\AppData\Roaming\...\Scripts
にインストールされました。
画像ではWarningが出ていますが、今回利用する環境では該当ディレクトリに環境PATH
を通していないので警告がでているようです。
ドキュメントではWarningが出た場合、記載されているパスに移動して下記のコマンドを実行とあるので実行します。
# Warning に記載のあるパスに移動してからコマンドを実行
.\pipx.exe ensurepath
コマンドを実行すると環境変数PATHに該当のディレクトリが登録されました。
プロンプトを再起動して環境変数を読み込み直すと、インストールしたpipxにPATHが通っている事がわかります。
pipxでpycowsayをインストールして実行してみる
# pipxで管理されているパッケージがない事を確認
pipx list
# pycowsayをインストール
pipx install pycowsay
# pipx listでインストールされた事を確認
pipx list
# pycowsayを実行
pycowsay moooo!
pipx runではインストールしないでも実行できる
pipx runコマンドを実行すると、インストールせずとも一時的な仮想環境を用意して実行してくれます。
pipx run pycowsay moooo!
実行した環境では先ほどpycowsayがインストールされているため、すでにインストールされている旨メッセージがでてしまっていますがpycowsayが実行されました。
pipx uninstallでアンインストール
pipxのuninstallオプションでアンインストールする事ができます。
pipx list
pipx uninstall pycowsay
pipx list
pipxでインストールすると何がよいのか
pipに比べて、pipxはインストールしたアプリごとに隔離した環境を用意してインストールされるようです。
アプリケーションごとに、隔離した環境を用意しているため、パッケージの一覧表示やアップグレード、アンインストールなどでメリットがあります。
またpipxはsudoを必要としなかったり、runオプションで一時的に実行できたり、特定のバージョンを指定して簡単に実行できたり。
色々と享受できるメリットがあります。
verboseオプションを付けてどんな感じでpipxがどんな感じで動いているのか
上記ページでpipxの仕組みについて記載があります。
インストール時に、--verboseオプションをつけてインストールしてみると。
裏ではどのインタープリターを利用しているかや、venvを利用して仮想環境を生成しているのが確認できます。
インストールされる場所と仮想環境の場所について
pipxのデフォルト設定では、バイナリは'~.local\bin'にインストールされ、仮想環境は~\pipx\venvs
に構築されていました。
ちなみにここらへんのパスについては、バージョン1.2.0で変更になっているようです。
以下、Installation OptionsのNoteより引用
pipx-in-pipx
pipxは適宜仮想環境を作成してインストールしてくれるツールとなりますが、紹介した手順ではpipx自体はpipでインストールしています。
公式ドキュメントではpipxをpipxでインストールする事は推奨されてはいませんが、これをやりたい場合は下記のプロジェクトが紹介されていました。
It is not recommended to install pipx via pipx. If you'd like to do this anyway, take a look at the pipx-in-pipx project and read about the limitations there.
総評
ツールごとに仮想環境を構築したり、インストールだったりアンインストールだったり。
ただツールを使いたいだけなのに、環境の管理をどうするか悩んだりすることがありますが。
pipxを利用すると、そこらへんの管理をpipxが受け持ってくれるので本来利用したかったツールを悩まずに便利に利用できます。