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 |
| Tach | Enforces module dependencies and architectural boundaries |
| 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 |
| Beartype | Near-real-time hybrid runtime-static type-checker |
| Radon | Computes various metrics from Python code |
| Pyright | Full-featured, standards-compliant static type checker |
| cython-lint | Lint Cython files |
| basedpyright | Fork of pyright |
| Refurb | Modernize Python codebases |
| Pylama | Code audit tool for Python |
| Prospector | Brings together the functionality of other Python analysis tools |
| deptry | Check for dependency issues |
| Fixit | Highly configurable linting framework |
| complexipy | Measures cognitive complexity in Python code |
| Zuban | High-performance Python type checker and language server |
| Pyroma | Rates how well a Python project compiles |
| pydoclint | Python docstring linter |
| Arid | Fast duplicate code detection for Python projects |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.