# pipdeptree [![PyPI](https://img.shields.io/pypi/v/pipdeptree?style=flat-square)](https://pypi.org/project/pipdeptree) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pipdeptree?style=flat-square)](https://pypi.org/project/pipdeptree) [![Downloads](https://static.pepy.tech/badge/pipdeptree/month)](https://pepy.tech/project/pipdeptree) [![Documentation](https://readthedocs.org/projects/pipdeptree/badge/?version=latest&style=flat-square)](https://pipdeptree.readthedocs.io) [![PyPI - License](https://img.shields.io/pypi/l/pipdeptree?style=flat-square)](https://opensource.org/licenses/MIT) [![check](https://github.com/tox-dev/pipdeptree/actions/workflows/check.yaml/badge.svg)](https://github.com/tox-dev/pipdeptree/actions/workflows/check.yaml) pipdeptree displays installed Python packages as a dependency tree. [`pip freeze`](https://pip.pypa.io/en/stable/cli/pip_freeze/) shows a flat list; `pipdeptree` adds parent-child relationships and reports dependency conflicts or cycles. ## Quick start ```bash pip install pipdeptree pipdeptree ``` ```text Flask==0.10.1 ┣━━ ✓ itsdangerous required: >=0.21 installed: 0.24 ┣━━ ✓ Jinja2 required: >=2.4 installed: 2.11.2 ┃ ┗━━ ⚠ MarkupSafe required: >=0.23 installed: 0.22 ┗━━ ✓ Werkzeug required: >=0.7 installed: 0.11.2 ``` Find packages that require a dependency: ```bash pipdeptree --reverse --packages markupsafe ``` Output as [JSON](https://www.json.org/), [Mermaid](https://mermaid.js.org/), or [Graphviz](https://graphviz.org/): ```bash pipdeptree -o json pipdeptree -o mermaid pipdeptree -o graphviz-svg > deps.svg ``` Report package counts, depth, conflicts, cycles, licenses and size: ```bash pipdeptree --summary # aligned text pipdeptree --summary -o rich # styled table pipdeptree --summary -o json # machine-readable ``` Inspect a tree without installing it. Resolve requirements against a package index, or read a resolved [PEP 751](https://peps.python.org/pep-0751/) lock offline: ```bash pipdeptree from-index "flask" # i is a shorthand alias pipdeptree from-index --requirements requirements.txt pipdeptree from-lock pylock.toml # l is a shorthand alias ``` The render flags above, including `--summary`, work with both subcommands. For the full documentation, visit [pipdeptree.readthedocs.io](https://pipdeptree.readthedocs.io). - [Installation](https://pipdeptree.readthedocs.io/en/latest/tutorial/getting-started.html) - [Usage](https://pipdeptree.readthedocs.io/en/latest/how-to/usage.html) - [Changelog](https://github.com/tox-dev/pipdeptree/releases) - [Issues](https://github.com/tox-dev/pipdeptree/issues) - [PyPI](https://pypi.org/project/pipdeptree) - [GitHub](https://github.com/tox-dev/pipdeptree)