🗂
pipで管理しているパッケージのバージョンアップを楽にする方法
TL;DR
pip-review を利用して、pip で管理しているパッケージのアップデートを楽にする方法の紹介です。
- pip-review を使えば一括アップデートできる
- 選択的にアップレードする場合も pip-review を便利に使える
- pip-review を使わない場合のワンライナーを紹介
pip-reviewのインストール
pip を使って pip-review をインストールします。
pip install pip-review
pip-reviewの使い方
アップデートできるパッケージの確認
pip-review
このコマンドを実行すると、アップデート対象のパッケージが表示されます。
全てのパッケージがアップデート済みの場合は、次のように表示されます。
$ pip-review
Everything up-to-date
全てのパッケージをアプデートする
pip-review --auto
このコマンドを実行で、全てのパッケージを最新版に更新できます。
パッケージを選択してアプデートする
pip-review --interactive
で選択的にアップデートできます。
更新対象のパッケージが多く[Yse/No]を選択するのは大変な場合には、pip-review
で、更新のあるパッケージを確認し、pip -U <package名>;
で個別にアップデートするのが現実的な方法です。
pip-reviewを使わない場合
なにかの理由で pip-review を使いたくない、または使えない場合は、次のワンライナーを使って一括でアップデートできます。
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U pip
pip3を利用している場合
macOS に python3 を入れているなどの理由により、pip-review がエラーで上手く動作しない環境では、次ののワンライナーを利用できます。
pip3 freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs pip3 install -U pip
また、pip3 freeze
の区切り文字が =
から @
になる場合があります。 その場合は、次のワンライナーを利用できます。
pip3 freeze --local | grep -v '^\-e' | cut -d @ -f 1 | xargs pip3 install -U pip
まとめ
pip を使うことで簡単にパッケージを管理できますが、パッケージ更新の手順を忘れてしまいがちです。また、pip 自体のバージョンアップにより、これまで利用できていたアップデート用のワンライナーが動作しなくなる場合もあります。そのような問題も、pip-review を利用しすることで簡単にアプデートをできるようになります。
Discussion