pip install
でインストールしたPyPIのライブラリは、新しいバージョンがリリースされていれば更新できます。更新(PyPIではアップグレードといいます)は、インストールした時と同じくpip
を用います。
本記事では、新しいバージョンの有無チェックとアップグレードの方法、そしてもしもの場合に元のバージョンに戻す方法について説明します。なお、pip
の使い方の詳細については以下ページを参照してください。
本記事の目次
まずpip自体を更新しておく
まずはライブラリの更新に用いるpip自体も随時更新されているので、以下のコマンドによりアップグレードしておきます。
C:¥Users¥ichiro> py -m pip install -U pip
# または
C:¥Users¥ichiro> py -m pip install --upgrade pip
--force-reinstall
オプションを加えて再度実行してみてください。
C:¥Users¥ichiro> py -m pip install --force-reinstall -U pip
# または
C:¥Users¥ichiro> py -m pip install --force-reinstall --upgrade pip
新しいバージョンの有無をチェック
以下のようにpip list --outdated
を実行すると新しいバージョンがリリース済みのライブラリが一覧で表示されます。PyPIのライブラリは、パッケージ形式で提供されているので、ライブラリ名は「パッケージ(Package
)」で表示されます。
Version
が「現在インストール済みのバージョン」、Latest
が「最新のバージョン」になります。最新バージョンがインストールされているライブラリはリストされません。
C:¥Users¥ichiro> py -m pip list --outdated
Package Version Latest Type
----------- ------- ------ -----
lxml 4.3.1 4.3.3 wheel
openpyxl 2.6.0 2.6.2 sdist
Pillow 5.3.0 6.0.0 wheel
python-docx 0.8.7 0.8.10 sdist
python-pptx 0.6.16 0.6.17 sdist
setuptools 39.0.1 41.0.0 wheel
XlsxWriter 1.1.2 1.1.6 wheel
この一覧から、openpyxl
は2.6.0
が現在インストールされており、最新版は2.6.2
がリリースされていることがわかります。
ライブラリの更新(アップグレード)方法
ライブラリを更新(アップグレード)するには、以下のように-U
(または--upgrade
)オプションをつけてpip intall
を実行します。
C:¥Users¥ichiro> py -m pip install -U パッケージ名
# または
C:¥Users¥ichiro> py -m pip install --upgrade パッケージ名
以下の例では、openpyxl
をアップグレードしています。
アップグレード後にpip list --outdated
を実行してみると一覧からopenpyxl
が除外されたのがわかります。つまり、openpyxl
は最新バージョンがインストールされていることになります。
元のバージョンに戻す(ダウングレード)方法
最新版を使用してみた結果、元のバージョンに戻したいケースがたまにあります(例えば、想定していたエラーが改善されて表示されなくなったなど)。そのような場合は、パッケージ名の後ろに==バージョン
を指定してpip install
を実行します。
C:¥Users¥ichiro> py -m pip install パッケージ名==バージョン
# または
C:¥Users¥ichiro> py -m pip install パッケージ名==バージョン
以下の例では、openpyxl
を2.6.2
から2.6.0
に戻しています。
またpip list --outdated
を実行してみると以下のようにopenpyxl
が一覧に追加されたのを確認できます。
最後に(留意すること)
新しいバージョンではバグが修正されている場合もありますので、適宜アップグレードが必要です。
ただし、同時に仕様も変更されていることがあるので注意してください。例えば、本サイトでよく利用しているエクセルファイルを操作できるOpenPyXLでは、バージョン2.6.1で読み込みの仕様に変更がありました。ライブラリのアップグレードに際しては、ライブラリのサイトなどにある更新情報(OpenPyXLの場合はこちら )にも目を通しておくようにしましょう。