TL;DR
brew install pipx
pipx ensurepath
pipx install インストールしたいアプリ名
これだけでいい感じになる。
はじめに
Python製CLIアプリのインストールはpipを使えばできてしまうのですが、Macには標準でPython2とPython3が同居していたり、自分でPython環境を別途構築しているとpipが一体どこのpipなのかが訳わからなくなりがちだと思います。
こんな記事があったり。
Why you should use python -m pip
pipを使うならちゃんとインタプリタを明示しようということですね。でも面倒だ。
上記の記事を読むとCLIアプリ管理に特化したpipxというツールがあることを知りました。
使ってみると確かにいい感じ。ちょっとした解説を踏まえて記事にしました。
環境
- MacOS 10.14.6
pipx をインストールする。
(公式READMEと同じ内容です。)
pipx自体はHomebrewでパパっとインストールします。
brew install pipx
pipx ensurepath
上記のpipx ensurepath
を実行すると以下のようなメッセージがでます。
Success! Added /Users/shintaro.ikeda/.local/bin to the PATH environment variable.
Consider adding shell completions for pipx. Run 'pipx completions' for instructions.
You likely need to open a new terminal or re-login for the changes to take effect. ✨ 🌟 ✨
どうやら$PATHに新しい参照先を刺したようです。
echo $PATH
(略..):/Users/shintaro.ikeda/.local/bin
たしかに出てきました。pipxで勝手にやってくれるので自分でbashrc等で設定しなくて良いので便利です。
Python製アプリのインストール
Pythonで作られているvirtualenvをインストールしてみます。
pipx install virtualenv
以下の出力が表示されます。
installed package virtualenv 20.0.23, Python 3.8.3
These apps are now globally available
- virtualenv
done! ✨ 🌟 ✨
Mac自体にあるPythonは最新のPython3.8.3ではないのですが、pipxが独自で$HOME/.local/以下に保持しています。
which virtualenv
/Users/shintaro.ikeda/.local/bin/virtualenv
virtualenvがインストールされています。
またpipxではCLIアプリごとにPythonインタプリタと利用しているライブラリを独立で管理しています。下記のように確認できます。
ls $HOME/.local/pipx/venvs/virtualenv
bin include lib pipx_metadata.json pyvenv.cfg
インストール後は、pipx list
, pipx uninstall
, pipx upgrade
など他のパッケージ管理ツールと同様にアプリを管理することができます。