There is no simple, native way to get the dependency tree of a Python virtual environment using the Pip package manager for Python. Pip Tree fixes this problem by retrieving every package from your virtual environment and returning a list of JSON objects that include the package name, version installed, date updated, and which packages are required by each package (the tree).
Install
# Homebrew install
brew tap justintime50/formulas
brew install pip-tree
# Install Pip Tree globally
pip3 install pip-tree
# Install Pip Tree into the virtual environment of the project you want to run it on
venv/bin/pip install pip-tree
# Install locally
just install
Usage
Virtual Env Usage:
pip-tree
Global Usage:
pip-tree --path "path/to/my_project/venv/lib/python3.9/site-packages"
Options:
-h, --help show this help message and exit
-p PATH, --path PATH The path to the site-packages directory of a Python virtual environment. If a path is not provided, the virtual environment Pip Tree is run from will be used.
--version show program's version number and exit
Sample Output
Generating Pip Tree Report...
[
{
"name": "docopt",
"version": "0.6.2",
"updated": "2021-05-12",
"requires": [],
"required_by": [
"coveralls"
]
},
{
"name": "flake8",
"version": "3.9.2",
"updated": "2021-05-12",
"requires": [
"mccabe<0.7.0,>=0.6.0",
"pyflakes<2.4.0,>=2.3.0",
"pycodestyle<2.8.0,>=2.7.0"
],
"required_by": []
},
{
"name": "Flask",
"version": "2.0.0",
"updated": "2021-05-12",
"requires": [
"click>=7.1.2",
"itsdangerous>=2.0",
"Jinja2>=3.0"
"Werkzeug>=2.0",
],
"required_by": []
}
]
Pip Tree report complete! 40 dependencies found for "path/to/my_project/venv/lib/python3.12/site-packages".
Package
In addition to the CLI tool, you can use functions to retrieve the list of packages and their details from a Python virtual environment in your own code:
import pip_tree
path = 'path/to/my_project/venv/lib/python3.12/site-packages'
package_list = pip_tree.get_pip_package_list(path)
for package in package_list:
package_details = pip_tree.get_package_details(package)
print(package_details['name'])
Development
# Get a comprehensive list of development tools
just --list
Metadata
Release files for pip-tree 5.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pip_tree-5.0.0.tar.gz | 6.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pip_tree-5.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.4 kB
Release files / pip_tree-5.0.0.tar.gz
| Download URL | pip_tree-5.0.0.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12924e23b000db48d48ca5772c26c1e39f00f7ce507b202a0b05724caee687e2
|
|
BLAKE2b-256 checksum How to use checksums |
52f88475f773f06ee979ff17165b386c4127c01644e4f95b0f950db4dd29ef80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / pip_tree-5.0.0-py3-none-any.whl
| Download URL | pip_tree-5.0.0-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d9a5b97d5944cb04d65f9f71d0d1cf2d6c1b9a7cdfda0a11afbf40328270d8d2
|
|
BLAKE2b-256 checksum How to use checksums |
d5b3780aca26a6e9aaea7bd80e7c179c2c138c0f118191e3f030c646ce8cb080
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|