Visualizing Python dependencies with pipdeptree

Let’s say you have a project with the following top level dependencies:

xlrd
money
babel
pyinstaller
jinja2
pywin32

After installing them you have the following packages:

altgraph==0.16.1
Babel==2.7.0
beautifulsoup4==4.7.1
et-xmlfile==1.0.1
future==0.17.1
jdcal==1.4.1
Jinja2==2.10.1
macholib==1.11
MarkupSafe==1.1.1
money==1.3.0
pefile==2019.4.18
pipdeptree==0.13.2
psutil==5.6.3
PyInstaller==3.4
pytz==2019.1
pywin32==224
pywin32-ctypes==0.2.0
soupsieve==1.9.2
xlrd==1.2.0

With pipdeptree you get a tree with the sub-depdencies to every top level package:

Babel==2.7.0
- pytz [required: >=2015.7, installed: 2019.1]
beautifulsoup4==4.7.1
- soupsieve [required: >=1.2, installed: 1.9.2]
et-xmlfile==1.0.1
jdcal==1.4.1
Jinja2==2.10.1
- MarkupSafe [required: >=0.23, installed: 1.1.1]
money==1.3.0
pipdeptree==0.13.2
- pip [required: >=6.0.0, installed: 19.0.3]
psutil==5.6.3
PyInstaller==3.4
- altgraph [required: Any, installed: 0.16.1]
- macholib [required: >=1.8, installed: 1.11]
- altgraph [required: >=0.15, installed: 0.16.1]
- pefile [required: >=2017.8.1, installed: 2019.4.18]
- future [required: Any, installed: 0.17.1]
- pywin32-ctypes [required: Any, installed: 0.2.0]
- setuptools [required: Any, installed: 40.8.0]
pywin32==224
xlrd==1.2.0