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