最近触ってみてちょっと便利だった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