Pythonで開発を進めるうちに「動かなくなった」「このコードどのライブラリのバージョン?」と戸惑った経験はありませんか?
バージョン管理は再現性と安定性を支える、非常に重要なスキルです。
この記事では、pip freeze
・pip list -o
・pip-review
の使い方を「どう使うと便利か」中心に、やさしくまとめています。
この記事の対象
pip freeze と pip list -o の違い
まずは比較表で理解しよう
コマンド | 主な用途 | 使いどころ |
---|---|---|
pip freeze | インストール済ライブラリ一覧とバージョン取得 | 環境の保存・再現 に最適 |
pip list -o | アップデート可能なライブラリ一覧表示 | 最新化が必要かをチェックする時に便利 |
pip freeze の使い方
現在の環境に入っているライブラリとバージョンを出力します。
「freeze」は現在InstallされているLibraryとそのVersionが出力されるコマンドです。
pip freeze
結果例
beautifulsoup4==4.6.3
cloudpickle==0.6.1
cycler==0.10.0
dask==0.19.4
decorator==4.3.0
kiwisolver==1.0.1
matplotlib==3.0.0
このfreezeを用いることでversion確認のみが簡単に行えます。また、この出力結果をtxt等に保存しておくことでversion upした場合に不具合が出たときなどにversionを戻す際の管理も行えます。
ポイント
- この結果を
requirements.txt
に保存することで、同じ環境を別のPCや仮想環境に再現できます。
txtへの書込み
pip freeze > version_kanri.txt
txtに情報を保存する方法です。
再現する方法
次に書込んだtxtを基にversionを戻す方法です。
pip install -r version_kanri.txt
pip list -o の使い方
アップデート可能なライブラリを一覧表示します。
pip list -o
「list」は「list -o」とすることで現在のversionと最新versionにup可能なものが表示されます。
結果例
Package Version Latest Type
--------------- ------- -------- -----
beautifulsoup4 4.6.3 4.9.3 wheel
cloudpickle 0.6.1 1.6.0 wheel
dask 0.19.4 2021.3.0 wheel
decorator 4.3.0 5.0.9 wheel
kiwisolver 1.0.1 1.3.1 wheel
matplotlib 3.0.0 3.3.4 wheel
ポイント
- 「今の環境を最新にしたい」ときのチェックに使えます。
- ただし、全部更新すると動かなくなることもあるので注意。
「pip-review」を用いた一括更新
Pythonにおける全てのLibraryを一括で更新する方法として「pip-review」があります。
インストール
pip install pip-review
Windows 環境でのインストールは以下の通りです。
py -m pip install pip-review
インストールしたら後は実行するだけです。
一括更新
pip-review --auto
これでアップデート可能なライブラリが全て更新されます。
注意:
- 一括更新は便利ですが、互換性問題が出る可能性があります。
- 更新前に必ず
pip freeze > requirements.txt
で現在の状態を保存しておきましょう。
更新可能Libraryの取得
$ pip-review
beautifulsoup4==4.9.3 is available (you have 4.6.3)
…
「pip-review」だけで実行すると、現在の自分のLibraryバージョンと最新のバージョンを知ることができます。
トラブルシューティング(初心者向けQ&A)
Q1. pip-reviewが見つからないと言われる
→ python -m pip install pip-review
の形で再インストールしてみましょう。
Q2. 更新したらコードが動かなくなった
→ requirements.txt
に保存しておいた古いバージョンで再インストールします。
pip install -r requirements.txt
以下は、エラー例です。
エラー例 | 原因 | 対策 |
---|---|---|
ModuleNotFoundError | ライブラリ未インストール | pip install ライブラリ名 |
AttributeError | バージョンが古い | pip install --upgrade ライブラリ名 |
SyntaxError | Python本体のバージョンが古い | Pythonの更新 |
学習におすすめのリソース
まとめ
pip freeze
:環境の保存・再現に使うpip list -o
:更新が必要なライブラリを確認するpip-review
:まとめて更新(事前にバックアップ必須)
バージョン管理を身につけることで、開発環境が安定し、トラブルを防げます。
まずは pip freeze
から始めてみましょう。