pipdeptree を使うと、pip でインストールしたパッケージの依存関係を調べることができます。

$ # macOS Sierra (10.12) + Homebrew
$
$ # Python2 用のソフトウェアをインストール
$ pip install pipdeptree
$
$ # Python3 用のソフトウェアをインストール
$ pip3 install pipdeptree
$ # macOS Sierra (10.12) + Homebrew
$ pipdeptree
matplotlib==2.0.2
  - cycler [required: >=0.10, installed: 0.10.0]
    - six [required: Any, installed: 1.11.0]
  - numpy [required: >=1.7.1, installed: 1.13.3]
  - pyparsing [required: !=2.1.6,!=2.0.4,!=2.1.2,>=1.5.6, installed: 2.2.0]
  - python-dateutil [required: Any, installed: 2.6.1]
    - six [required: >=1.5, installed: 1.11.0]
  - pytz [required: Any, installed: 2017.2]
  - six [required: >=1.10, installed: 1.11.0]
pipdeptree==0.10.1
  - pip [required: >=6.0.0, installed: 9.0.1]
scipy==0.19.1
  - numpy [required: >=1.8.2, installed: 1.13.3]
setuptools==36.5.0
wheel==0.30.0

しかし、pipdeptree はコマンドラインツールなので、このままでは Python の複数バージョンに同時にインストールすることができません。

モジュールとして実行する

実は、pipdeptree は Python のモジュールとして実行できます。 この方法であれば、複数バージョンにインストールして使うことができます。

$ # Python 2 の pip モジュールを調べる
$ python -m pipdeptree
$
$ # Python 3 の pip モジュールを調べる
$ python3 -m pipdeptree

コマンドラインツールを残したい方を後からインストールします。

$ # 複数バージョンを同時にインストールする
$ # この順番でインストールすると、コマンドラインツールは Python 3 用になります。
$ pip install pipdeptree
$ pip3 install pipdeptree

参考資料