スタンドアローンのコマンドラインツールをインストールする#
多くのパッケージは、コマンドラインアプリケーションを提供しています。そのようなパッケージの例としては、 mypy ・ flake8 ・ black ・ Pipenv が挙げられます。
通常ならシステムのどこからでもこれらのアプリケーションにアクセスできるようにしたいと思うでしょうが、パッケージとその依存先パッケージを同じグローバル環境にインストールすると、バージョンの衝突を起こしてオペレーティングシステムが持っている Python パッケージ間の依存関係を破壊してしまうかもしれません。
pipx は、 $PATH
に含まれるディレクトリを通してアプリケーションにアクセスできるようにしつつ各パッケージに仮想環境を作成することでこの問題を解決します。こうすることで、各パッケージの更新や削除をしても他のパッケージには影響を与えず、どこからでもアプリケーションを安全に走らせることができるようにできます。
注釈
pipx は Python 3.6+ でのみ動作します。
pipx は pip と一緒にインストールされています:
python3 -m pip install --user pipx
python3 -m pipx ensurepath
py -m pip install --user pipx
py -m pipx ensurepath
注釈
ensurepath `` は、アプリケーションのあるディレクトリが ``$PATH
に含まれるようにすることを保証します。この更新(訳注、``$PATH``の修正のこと)が効果を持つようにするためにターミナルを再起動する必要があるかもしれません。
これで、 pipx install
を使ってパッケージをインストールすることができるようになり、どこからでもそのパッケージのアプリケーションを起動することができるようになりました。
$ pipx install PACKAGE
$ PACKAGE_APPLICATION [ARGS]
例:
$ pipx install cowsay
installed package cowsay 6.1, installed using Python 3.12.2
These apps are now globally available
- cowsay
done! ✨ 🌟 ✨
$ cowsay -t moo
___
< moo >
===
\
\
^__^
(oo)\_______
(__)\ )\/
|| ||
||----w |
pipx でインストールされたパッケージのリストやどんなアプリケーションが使用可能かを見るためには、 pipx list
を使ってください:
$ pipx list
venvs are in /Users/user/Library/Application Support/pipx/venvs
apps are exposed on your $PATH at /Users/user/.local/bin
manual pages are exposed at /Users/user/.local/share/man
package black 24.2.0, installed using Python 3.12.2
- black
- blackd
package cowsay 6.1, installed using Python 3.12.2
- cowsay
package mypy 1.9.0, installed using Python 3.12.2
- dmypy
- mypy
- mypyc
- stubgen
- stubtest
package nox 2024.3.2, installed using Python 3.12.2
- nox
- tox-to-nox
パッケージを更新またはアンインストールするには:
pipx upgrade PACKAGE
pipx uninstall PACKAGE
pipx は pip を使って更新やアンインストールができます:
python3 -m pip install --upgrade pipx
python3 -m pip uninstall pipx
py -m pip install --upgrade pipx
py -m pip uninstall pipx
また、pipx ならアプリケーションの最新版を一時的で短命の環境にインストールして動作させることができます。例えば:
pipx run cowsay -t moooo
pipx で使える(サブ)コマンドの完全なリストを見たければ、次のようにしてください:
pipx --help
pipx については、 https://pipx.pypa.io/ でもっと学べます。