pip でインストールした python パッケージのアップデート

pip でインストールした python パッケージのアップデートをしていなかったら、すっかり、パッケージが古くなってしまいました。

アップデートしようと思ったら、意外に難しい。julia だったら Pkg.update() で一発なのに...

まずは、pip 自身をアップデートします。なお、以下のコマンドはターミナルに書きます。少し古い pip3 環境をひきずっている人は、はじめの pip が pip3 になりますので、注意して下さい。brew をアップデートしていても pip で入れたものは、置いてきぼりで、pip 自身すらアップデートされないようです。

$ pip install -U pip

続いては、pip で管理しているパッケージを表示してみます。

$ pip list

新しいパッケージがあれば、表示してもらう場合は、--o を付けます。

$ pip list --o

これで、更新版のあるパッケージが判ります。そして、

$ pip install -U %更新したいパッケージ

pip install -U に続けて、希望のパッケージを入力してアップデートです。

一括更新その1、pip-review を使う

ひとつずつ、インストールするのが面倒な場合は、pip-review を導入しましょう。

$ pip install pip-review

残念ながら、pip-review は、pip-review 自身をアップデートできないようです。すでに導入ずみの人は、先にアップデートしましょう。-U の位置は下記でないと動かないことがあります。

$ pip install -U pip-review

改めて、

$ pip-review --auto

注意は、requirement でエラーが出ることがあることです。エラーが出た場合は、ひとつずつ pip install し直すことをお奨めします。pip-review は依存関係に関係なく最新版を入れてしまうことがありますので、注意が必要です。

一括更新その2、シェルコマンドでがんばる

MacOS X を含む Unix 系は、下記でいけるようです。@mokusen さんの pipでパッケージを一括アップデートする(windowsも) からの引用です。


pip list -o --format freeze | sed 's/=.*//' | xargs python -m pip install -U

`pip3` を使っている方は下記になります。少なくとも自分の MacOS X 環境では下記で動きます。


 pip3 list -o --format freeze | sed 's/=.*//' | xargs python3 -m pip install -U
B! LINE