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
オプションをつければすべて表示される)
pip
setuptools
distribute
wheel
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 <環境名>
。