pip installでインストールしたPythonライブラリについてpip showコマンドで情報表示すると、「License: UNKNOWN」と出力されるケースがある。例えばPythonでは著名なCLIライブラリであるclickも該当する。
$ pip show click
Name: click
Version: 6.7
Summary: A simple wrapper around optparse for powerful command line utilities.
Home-page: http://github.com/mitsuhiko/click
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: UNKNOWN
なぜライブラリ作者がUNKNOWNのままライセンスを明示していないのかというと、これはPEP314に理由が書かれている。
要約すると、ライブラリを公開しているPythonパッケージ作者は、メタ情報としてClassifiersのリストから自分のソフトウェアライセンスに該当するものを選択し、リストに無い時はLicenseフィールドで表現する事が求められる。
よって、Classifiersで自分のライセンスを宣言できている作者は、Licenseフィールドに何も情報を入れていないケースがあるし、結果として「License: UNKNOWN」と表示されても、作者の不注意ではないのである。
ということで、利用中のソフトウェアライセンスを調べる用途では、pip showコマンドを使うのは適切ではない。
pip-licensesという調査ツールでは、Classifiersからの情報取得がサポートされるため、--from-classifier
オプションと組み合わせて使う。
# ツールのインストール
$ pip install pip-licenses
# --from-classifierオプションでライセンスを調査
$ pip-licenses --from-classifier
Name Version License
click 6.7 BSD License
これでclickはライセンス不明のソフトウェアではなく、BSD Licenseで提供される事が分かり、安心して利用できる。