deptry is a command line utility for Python projects that checks declared dependencies against the modules actually imported by the codebase.
It scans Python source files and notebooks, compares imports with dependency definitions, and helps identify common packaging and maintenance problems such as missing packages, unused dependencies, transitive dependencies, misplaced development dependencies, and standard library modules that have been declared unnecessarily. It supports projects using PEP 621, Poetry, PDM, uv, setuptools, and requirements.txt style dependency files.
This is free and open source software.
Key Features
- Checks for missing dependencies declared in neither pyproject.toml nor requirements files.
- Reports unused dependencies that are listed but not used in the codebase.
- Detects transitive dependencies that are imported without being declared directly.
- Flags development dependencies that are used in non-development code.
- Warns when Python standard library modules are incorrectly listed as project dependencies.
- Supports PEP 621 projects as well as Poetry, PDM, uv, setuptools, pip, and pip-tools workflows.
- Scans both Python source files and Jupyter notebooks, with options to ignore notebooks if needed.
- Offers configuration through command line options or a [tool.deptry] section in pyproject.toml.
- Supports inline ignore comments, per-rule ignores, exclude patterns, and package-to-module name mappings.
- Can produce JSON reports and GitHub Actions annotations for CI workflows.
- Can be integrated with pre-commit hooks.
Website: github.com/osprey-oss/deptry
Support:
Developer: Florian Maas and contributors
License: MIT License
deptry is written in Python. Learn Python with our recommended free books and free tutorials.
Related Software
| Python Linters | |
|---|---|
| Ruff | Extremely fast Python linter and code formatter |
| ty | Fast Python type checker |
| Mypy | Static type checker for Python |
| Bandit | Find security issues in Python code |
| Pylint | Static code analyser |
| wemake-python-styleguide | Flake8 plugin |
| pycodestyle | Check Python code against style conventions in PEP 8 |
| Pyflakes | Checks Python source files for errors |
| Vulture | Find dead code |
| Pyrefly | Fast type checker and language server |
| Flake8 | Wrapper around PyFlakes and pycodestyle |
| Radon | Computes various metrics from Python code |
| cython-lint | Lint Cython files |
| Pylama | Code audit tool for Python |
| Prospector | Brings together the functionality of other Python analysis tools |
| Fixit | Highly configurable linting framework |
| Pyroma | Rates how well a Python project compiles |
| YALA | Yet Another Linter Aggregator |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

