スタンドアローンのコマンドラインツールをインストールする#
多くのパッケージは、コマンドラインアプリケーションを提供しています。そのようなパッケージの例としては、 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 2.0, Python 3.6.2+
These binaries are now globally available
- cowsay
done! ✨ 🌟 ✨
$ cowsay moo
___
< moo >
===
\
\
^__^
(oo)\_______
(__)\ )\/
|| ||
||----w |
pipx でインストールされたパッケージのリストやどんなアプリケーションが使用可能かを見るためには、 pipx list
を使ってください:
$ pipx list
venvs are in /Users/user/.local/pipx/venvs
symlinks to binaries are in /Users/user/.local/bin
package black 18.9b0, Python 3.6.2+
- black
- blackd
package cowsay 2.0, Python 3.6.2+
- cowsay
package mypy 0.660, Python 3.6.2+
- dmypy
- mypy
- stubgen
package nox 2018.10.17, Python 3.6.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 moooo
pipx で使える(サブ)コマンドの完全なリストを見たければ、次のようにしてください:
pipx --help
pipx については、 https://pypa.github.io/pipx/ でもっと学べます。