Pythonのパッケージ(ライブラリ)のバージョンを確認
Pythonのスクリプトで使用されているパッケージ(ライブラリ)やモジュールのバージョン、および、環境にインストールされているパッケージのバージョンを確認する方法を説明する。
Python本体のバージョンを確認したい場合は以下の記事を参照。
スクリプトで確認・表示: __version__属性
Pythonのスクリプト内で使用されているパッケージのバージョンを確認・表示するには、__version__属性を取得する。
pandasの例。
import pandas as pd
print(pd.__version__)
# 2.0.1
__version__属性はPEPで推奨されており、多くのパッケージおよびモジュールで設定されている。
- PEP 396 – Module Version Numbers | peps.python.org
- PEP 8 – Style Guide for Python Code | peps.python.org
有名どころのパッケージではほぼ設定されているが、あくまでも推奨なので設定されていない場合もある。
__version__属性のほかに、より詳細な情報を表示する関数などを用意しているパッケージもある。
なお、mathやosなどの標準ライブラリのモジュールには__version__は設定されていない。標準ライブラリのモジュールは個別にバージョンを持っておらず、Python本体のバージョンに準ずる。
pipコマンドで確認: pip list, pip freeze, pip show
Pythonのパッケージ管理システムpipを使用している場合は、以下のコマンドでインストール済のパッケージ情報を確認できる。コマンドプロンプトやターミナルなどでコマンドを実行する。
環境によってはpipコマンドではなくpip3コマンドを使う。Python2がpip、Python3がpip3に割り当てられている場合がある。
パッケージのインストールやアップデート、アンインストールなど、pipの基本的な使い方については以下の記事を参照。
インストール済パッケージの一覧表示: pip list
pip listでインストールされているパッケージの名称とバージョン番号が一覧で表示される。
$ pip list
Package Version
------------------ ---------
absl-py 0.1.10
agate 1.6.0
agate-dbf 0.2.0
agate-excel 0.2.1
agate-sql 0.5.2
appnope 0.1.0
...
pip listでは以下のオプションが使える。
--format <format-name>オプション- 表示フォーマット(
columns,freeze,jsonなど)を設定
- 表示フォーマット(
-o,--outdatedオプション- 最新でないパッケージのみ一覧表示
-u,--uptodateオプション- 最新のパッケージのみ一覧表示
詳細は以下の記事を参照。
インストール済パッケージの一覧表示: pip freeze
pip freezeコマンドではインストールされているパッケージの名称とバージョン番号の一覧がfreeze形式で表示される。
$ pip freeze
absl-py==0.1.10
agate==1.6.0
agate-dbf==0.2.0
agate-excel==0.2.1
agate-sql==0.5.2
appnope==0.1.0
...
pip freezeとpip list --format freeze の違いは、pip freezeでは、以下に示すパッケージ管理ツールがデフォルトで表示されないこと。(--allオプションをつければすべて表示される)
pipsetuptoolsdistributewheel
freeze形式の出力をテキストファイルとして保存しておくと、パッケージを指定のバージョンで一括インストールできる。
このような用途ではpipなどのパッケージ管理ツールをリストアップする必要がないので、pip freezeではデフォルトで表示されないようになっている。
インストール済パッケージの個別詳細表示: pip show
一覧ではなく特定のパッケージの詳細情報を表示したい場合はpip show <package-name>コマンドを使う。
バージョン情報のほか、ライセンスや依存パッケージなどの詳細情報が表示される。
$ pip show pandas
Name: pandas
Version: 2.0.1
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page:
Author:
Author-email: The Pandas Development Team <pandas-dev@python.org>
License: BSD 3-Clause License
...
Location: /opt/homebrew/lib/python3.11/site-packages
Requires: numpy, numpy, python-dateutil, pytz, tzdata
Required-by:
condaコマンドで確認(Anacondaの場合): conda list
AnacondaでPython環境を構築した場合は、conda listで現在の仮想環境にインストールされているパッケージが一覧表示される。
環境がactivateされていない場合は、conda list -n <環境名>。