🗂

pipで管理しているパッケージのバージョンアップを楽にする方法

2022/04/24に公開

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