pythonのpipxの使い方
概要
- node.jsの
npx
に似た機能を提供する - pipがグローバルのパッケージを汚染してしまうので作られたツール
- 別の環境にインストールされ、システムのパッケージと競合しない
- PEP 668の提案に依拠する
- ユースケースとしてコマンドラインで単独で動作するパッケージをインストールするのに適している
- e.g.
yt-dlp
,jupyterlab
,pycowsay
など
- e.g.
- pypaの提供なのでオーソライズドなもの
- インストールされた実態は
~/.local/pipx/venvs
インストール
pip
$ python3 -m pip install --user pipx
$ python3 -m pipx ensurepath
macOS
$ brew install pipx
ubuntu/debian
$ sudo apt install pipx
基本的な操作
パッケージのインストール
$ pipx install <package-name>
実行するPythonのバイナリを指定し、パッケージ名にsuffixをつける
- 例えば、
python3.11
でjupyterlab
をインストールする場合は、jupyterlab_3.11
という名前になる
$ pipx install <package-name> --python $(which python3) --suffix <suffix>
例; jupyterlabをインストールする
$ pipx install jupyterlab --python $(which python3) --suffix _3.11
$ pipx inject jupyterlab_3.11 tqdm pandas seaborn scikit-learn ipywidgets theme-darcula joblib sortedcontainers
すべてのパッケージのアップグレード
$ pipx upgrade-all
すべてのパッケージをアンインストール
$ pipx uninstall-all
パッケージの一覧を表示する
$ pipx list
インストールせずにパッケージを実行する
$ pipx run <package-name>
具体例
$ pipx run pycowsay moo
---
< moo >
---
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
トラブルシューティング
pipxのバージョンが古い
- 対応
python -m pip install --upgrade pip pipx
パッケージが壊れている
- 対応
pipx uninstall <package-name>
pipx install <package-name>