Pythonの便利ツールpipx

最近触ってみてちょっと便利だったpipxについて紹介。

pipxとは

Pythonパッケージの実行バイナリを分離された仮想環境にインストールする便利ツールです。

pipxproject/pipx: Execute binaries from Python packages in isolated environments

例えば以下のように使用します。

>> cowsay hello
zsh: command not found: cowsay

>> pipx install cowsay
  installed package pysay 2.0.0, Python 3.7.2
  These binaries are now globally available
    - pysay
    - pythink
done! ✨ 🌟 ✨

>> cowsay hello
 _______
< hello >
 -------
     \           ,-.-.
      \         /     \
       \       ( @ ,@  )._
        \    ,/\...-..-'  `\
            /            )  \
           (  o o   ,-.  )   )
            \_____.'  ,-'    )
             --/-- __/ )    /
             ,^.--'  ,/    /
            '  '   ,/     (         $
                  /     ,'^\   __  /|
                 |          `-'  `´ /
                  \    ,.    ,-~^^^´
                   `--^  `--^

動きとしては\$HOME/.local/pipx/venv/配下にvenvで仮想環境を切ってpipでパッケージをインストールし、\$HOME/.local/bin/配下に実行ファイルのシムリンクを貼っています。 (\$HOME/.local/bin/にPATHを通しておくことが必要)

ipythonやhttpie, awscliなど使い勝手としてはglobalにインストールしたいけど、環境を汚したくない時に便利。

コマンド

pipxの実行バイナリ配置ディレクトリをパスに追加

pipx ensurepath

使用中のシェルに応じて~/.bashrc, ~/.zshrc, ~/.config/fish/config.fish にPATH追加。

パッケージの実行バイナリをインストール

pipx install PACAKGE

一時的に仮想環境でパッケージの実行バイナリを実行

pipx run PACKAGE [ARGS...]

git+urlでインストールする場合は以下の呼び出し方になります。

pipx install --spec git+URL BINARYNAME

# 例
pipx install --spec git+https://github.com/ambv/black black

インストール済みパッケージのアップグレード

# パッケージ個別でアップグレード
pipx upgrade PACKAGE
# インストール済みパッケージを全てアップグレード
pipx upgrade-all

インストール済みパッケージの仮想環境に別のパッケージを追加でインストール

pipx inject PACKAGE NEW_DEPENDENCIES

インストール済みパッケージのアンインストール

# パッケージ個別でアンインストール
pipx uninstall PACKAGE
# インストール済みパッケージを全てアンインストール
pipx uninstall-all

インストール済みパッケージの再インストール

Python自体をアップグレードした場合などに、新しいPythonを使用して全てのパッケージをインストールし直すコマンド。

pipx reinstall-all PYTHON

インストール済みパッケージのリスト表示

pipx list
Show Comments