Best-of Python Developer Tools
🏆 A ranked list of awesome python developer tools and libraries. Updated weekly.
This curated list contains 260 awesome open-source projects with a total of 780K stars grouped into 15 categories. All projects are ranked by a project-quality score, which is calculated based on various metrics automatically collected from GitHub and different package managers. If you like to add or update projects, feel free to open an issue, submit a pull request, or directly edit the projects.yaml. Contributions are very welcome!
🧙♂️ Discover other best-of lists or create your own.
📫 Subscribe to our newsletter for updates and trending projects.
Contents
- Linters & Style Checkers 43 projects
- Code Formatters 7 projects
- Code Refactoring 18 projects
- Code Security 8 projects
- Virtual Environments 10 projects
- Dependency & Package Managers 11 projects
- Code Metrics & Complexity 6 projects
- Logging 21 projects
- Documentation 29 projects
- Debugging Tools 14 projects
- Testing Tools 43 projects
- Code Packaging 16 projects
- Build Tools 14 projects
- System Monitoring & Profiling 18 projects
- AST Tools 6 projects
- Others 1 projects
Explanation
- 🥇🥈🥉 Combined project-quality score
- ⭐️ Star count from GitHub
- 🐣 New project (less than 6 months old)
- 💤 Inactive project (6 months no activity)
- 💀 Dead project (12 months no activity)
- 📈📉 Project is trending up or down
- ➕ Project was recently added
- ❗️ Warning (e.g. missing/risky license)
- 👨💻 Contributors count from GitHub
- 🔀 Fork count from GitHub
- 📋 Issue count from GitHub
- ⏱️ Last update timestamp on package manager
- 📥 Download count from package manager
- 📦 Number of dependent projects
Flake8 related project
Pytest related project
Pylint related project
Sphinx related project
MkDocs related project
Linters & Style Checkers
pycodestyle (🥇38 · ⭐ 4.7K) - Simple Python style checker in one Python file. ❗️Saxpath
wemake-python-styleguide (🥈36 · ⭐ 2.1K) - The strictest and most opinionated python linter ever!. MIT
pyre-check (🥈34 · ⭐ 6.2K) - Performant type-checking for python. MIT
pydocstyle (🥈32 · ⭐ 980 · 💤) - docstring style checker. MIT
flake8-bugbear (🥈31 · ⭐ 860 · 📈) - A plugin for Flake8 finding likely bugs and design.. MIT


pylint-django (🥈29 · ⭐ 540) - Pylint plugin for improving code analysis for when.. ❗️GPL-2.0

flake8-isort (🥈29 · ⭐ 140) - flake8 plugin that integrates isort. ❗️GPL-2.0


flake8-builtins (🥈28 · ⭐ 94) - Check for python builtins being used as variables or.. ❗️GPL-2.0


mypy-protobuf (🥉27 · ⭐ 520) - open source tools to generate mypy stubs from protobufs. Apache-2
flake8-eradicate (🥉27 · ⭐ 270) - Flake8 plugin to find commented out or dead code. MIT


flake8-import-order (🥉27 · ⭐ 270) - Flake8 plugin that checks import order against.. ❗️LGPL-3.0


check-manifest (🥉27 · ⭐ 270) - Tool to check the completeness of MANIFEST.in for Python packages. MIT
flake8-comprehensions (🥉26 · ⭐ 400) - A flake8 plugin to help you write better.. MIT


flake8-quotes (🥉26 · ⭐ 160) - Flake8 extension for checking quotes in python. MIT


flake8-black (🥉25 · ⭐ 140) - flake8 plugin to run black for checking Python coding style. MIT


flake8-bandit (🥉21 · ⭐ 95) - Automated security testing using bandit and flake8. MIT


pandas-vet (🥉20 · ⭐ 140 · 💤) - A plugin for Flake8 that checks pandas code. MIT


flake8-simplify (🥉20 · ⭐ 130) - A flake8 plugin that helps you to simplify code. MIT
pylint-flask (🥉19 · ⭐ 62) - A Pylint plugin to analyze Flask applications. ❗️GPL-2.0

linty_fresh (🥉12 · ⭐ 180) - Surface lint errors during code review. Apache-2

mypy

Show 10 hidden projects...
- pep8-naming (🥈29 · ⭐ 410) - Naming Convention checker for Python.
❗️Saxpath
- coala (🥈28 · ⭐ 3.4K · 💀) - coala provides a unified command-line interface for linting and..
❗️AGPL-3.0
- darglint (🥉27 · ⭐ 460 · 💀) - A python documentation linter which checks that the docstring..
MIT
- flake8-commas (🥉24 · ⭐ 130 · 💀) - Flake8 extension for enforcing trailing commas in python.
MIT
- data-science-types (🥉23 · ⭐ 190 · 💀) - Mypy stubs, i.e., type information, for numpy, pandas..
Apache-2
- flakehell (🥉19 · ⭐ 230 · 💀) - Flake8 wrapper to make it nice, legacy-friendly, configurable.
MIT
- flake8-mypy (🥉19 · ⭐ 100 · 💀) - A plugin for flake8 integrating Mypy.
MIT
- bellybutton (🥉16 · ⭐ 250 · 💀) - Custom Python linting through AST expressions.
MIT
- pycycle (🥉15 · ⭐ 310 · 💀) - Tool for pinpointing circular imports in Python. Find cyclic imports..
MIT
- yala (🥉15 · ⭐ 13 · 💀) - Yet Another Linter Aggregator.
MIT
Code Formatters
autopep8 (🥈37 · ⭐ 4.2K) - A tool that automatically formats Python code to conform to the PEP 8.. MIT
docformatter (🥉27 · ⭐ 350) - Formats docstrings to follow PEP 257. MIT
autoimport (🥉18 · ⭐ 59) - Autoimport automatically fixes wrong import statements. ❗️GPL-3.0
Show 1 hidden projects...
Code Refactoring
jedi (🥇41 · ⭐ 5.3K) - Awesome autocompletion, static analysis and refactoring library for python. MIT
rope (🥇37 · ⭐ 1.5K · 📈) - a python refactoring library. ❗️LGPL-3.0
pyupgrade (🥈30 · ⭐ 2.3K) - A tool (and pre-commit hook) to automatically upgrade syntax for newer.. MIT
MonkeyType (🥈24 · ⭐ 4.1K) - A Python library that generates static type annotations by.. BSD-3
redbaron (🥈24 · ⭐ 650 · 💤) - Bottom-up approach to refactoring in python. ❗️LGPL-3.0
baron (🥉23 · ⭐ 280 · 💤) - IDE allow you to refactor code, Baron allows you to write.. ❗️LGPL-3.0
add-trailing-comma (🥉22 · ⭐ 260) - A tool (and pre-commit hook) to automatically add trailing.. MIT
Show 5 hidden projects...
- eradicate (🥉23 · ⭐ 150 · 💤) - Removes commented-out code from Python files.
❗️Saxpath
- pyannotate (🥉21 · ⭐ 1.4K · 💀) - Auto-generate PEP-484 annotations.
Apache-2
- unify (🥉19 · ⭐ 80 · 💀) - Modifies strings to all use the same quote where possible.
MIT
- pep8ify (🥉15 · ⭐ 120 · 💀) - A library that modifies python source code to conform to pep8.
Apache-2
- massedit (🥉15 · ⭐ 110 · 💀) - Programmatically edit text files with Python. Useful for source to..
MIT
Code Security
bandit (🥇34 · ⭐ 4.7K) - Bandit is a tool designed to find common security issues in Python.. Apache-2
safety (🥈31 · ⭐ 1.4K) - Safety checks Python dependencies for known security vulnerabilities and.. MIT
detect-secrets (🥉30 · ⭐ 2.6K) - An enterprise friendly way of detecting and preventing.. Apache-2
dlint (🥉19 · ⭐ 130) - Dlint is a tool for encouraging best coding practices and helping ensure.. BSD-3
Show 3 hidden projects...
- pyarmor (🥈32 · ⭐ 1.9K) - A tool used to obfuscate python scripts, bind obfuscated scripts..
❗️SGI-B-2.0
- pyt (🥉23 · ⭐ 2.1K · 💀) - A Static Analysis Tool for Detecting Security Vulnerabilities in..
❗️GPL-2.0
- dodgy (🥉20 · ⭐ 110 · 💀) - Looks at Python code to search for things which look dodgy such as..
MIT
Virtual Environments
virtualenv (🥈40 · ⭐ 4.3K) - Virtual Python Environment builder. MIT
pyenv-virtualenv (🥉21 · ⭐ 5.3K) - a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv). MIT
-
GitHub (👨💻 54 · 🔀 350 · 📋 320 - 36% open · ⏱️ 18.10.2022):
git clone https://github.com/pyenv/pyenv-virtualenv
dh-virtualenv (🥉17 · ⭐ 1.5K) - Python virtualenvs in Debian packages. ❗️GPL-2.0
-
GitHub (👨💻 59 · 🔀 170 · 📋 200 - 14% open · ⏱️ 15.07.2022):
git clone https://github.com/spotify/dh-virtualenv
pyenv-installer (🥉16 · ⭐ 3.5K · 💤) - This tool is used to install `pyenv` and friends. MIT
-
GitHub (👨💻 35 · 🔀 360 · 📋 77 - 9% open · ⏱️ 01.05.2022):
git clone https://github.com/pyenv/pyenv-installer
freshenv (🥉14 · ⭐ 150 · 📉) - Provision, share, manage local and cloud developer environments. MPL-2.0
Show 2 hidden projects...
- vex (🥉18 · ⭐ 370 · 💀) - Run a command in the named virtualenv.
MIT
- pipenv-pipes (🥉13 · ⭐ 130 · 💀) - A PipEnv Environment Switcher.
MIT
Dependency & Package Managers
pipreqs (🥉29 · ⭐ 4.7K) - pipreqs - Generate pip requirements.txt file based on imports of any.. Apache-2
Show 1 hidden projects...
Code Metrics & Complexity
prospector (🥇34 · ⭐ 1.7K) - Inspects Python source files and provides information about.. ❗️GPL-2.0
wily (🥉24 · ⭐ 1K) - A Python application for tracking, reporting on timing and complexity in.. Apache-2
Show 1 hidden projects...
Logging
rich (🥇42 · ⭐ 41K) - Rich is a Python library for rich text and beautiful formatting in the terminal. MIT
tqdm (🥇42 · ⭐ 24K) - A Fast, Extensible Progress Bar for Python and CLI. MPL-2.0
-
GitHub (👨💻 110 · 🔀 1.2K · 📥 10K · 📦 360K · 📋 940 - 40% open · ⏱️ 03.09.2022):
git clone https://github.com/tqdm/tqdm
-
PyPi (📥 47M / month · 📦 22K · ⏱️ 04.04.2022):
pip install tqdm
-
Conda (📥 16M · ⏱️ 03.09.2022):
conda install -c conda-forge tqdm
-
Docker Hub (📥 4.1K · ⭐ 2 · ⏱️ 12.11.2022):
docker pull tqdm/tqdm
sentry-sdk (🥇39 · ⭐ 1.4K) - The official Python SDK for Sentry.io. BSD-2
python-json-logger (🥈35 · ⭐ 1.4K) - Json Formatter for the standard python logger. BSD-2
progressbar2 (🥈35 · ⭐ 790) - Progressbar 2 - A progress bar for Python 2 and Python 3 - pip.. BSD-3
alive-progress (🥉28 · ⭐ 4K) - A new kind of Progress Bar, with real-time throughput, ETA, and.. MIT
stackprinter (🥉26 · ⭐ 1.2K) - Debugging-friendly exceptions for Python. MIT
better-exceptions (🥉24 · ⭐ 4.3K) - Pretty and useful exceptions in Python, automatically. MIT
rebound (🥉24 · ⭐ 3.9K · 💤) - Command-line tool that instantly fetches Stack Overflow results when.. MIT
python-devtools (🥉17 · ⭐ 630) - Dev tools for python. MIT
Show 6 hidden projects...
- structlog (🥈34 · ⭐ 2.3K) - Simple, powerful, and fast logging for Python.
❗Unlicensed
- logbook (🥈32 · ⭐ 1.4K · 💀) - A cool logging replacement for Python.
BSD-3
- prettytable (🥉28 · ⭐ 910) - Display tabular data in a visually appealing ASCII table..
❗️BSD-1-Clause
- python-coloredlogs (🥉28 · ⭐ 490 · 💀) - Colored terminal output for Pythons logging module.
MIT
- PrettyErrors (🥉22 · ⭐ 2.6K · 💀) - Prettify Python exception output to make it legible.
MIT
- tbvaccine (🥉16 · ⭐ 360 · 💀) - A small utility to pretty-print Python tracebacks.
MIT
Documentation
🔗 best-of-mkdocs ( ⭐ 100) - Collection of MkDocs projects and plugins.
mkdocs-material (🥇40 · ⭐ 12K · 📉) - Documentation that simply works. MIT


sphinx_rtd_theme (🥈38 · ⭐ 4.2K) - Sphinx theme for readthedocs.org. MIT

sphinx-autodoc-typehints (🥈29 · ⭐ 460) - Type hints support for the Sphinx autodoc extension. MIT

mkdocstrings (🥈28 · ⭐ 1.1K) - Automatic documentation from sources, for MkDocs. ISC


pdoc3 (🥈26 · ⭐ 910) - Auto-generate API documentation for Python projects. ❗️AGPL-3.0
sphinx-bootstrap-theme (🥈26 · ⭐ 580 · 💤) - Sphinx Bootstrap Theme. MIT

interrogate (🥉25 · ⭐ 420) - Explain yourself! Interrogate a codebase for docstring coverage. MIT
mkdocs-awesome-pages-plugin (🥉24 · ⭐ 280) - An MkDocs plugin that simplifies configuring page.. MIT


blacken-docs (🥉22 · ⭐ 460) - Run `black` on python code blocks in documentation files. MIT
Griffe (🥉22 · ⭐ 120) - Signatures for entire Python programs. Extract the structure, the frame,.. ISC
sphinx-markdown-builder (🥉19 · ⭐ 140 · 💤) - sphinx builder that outputs markdown files. MIT

mkdocs-print-site-plugin (🥉19 · ⭐ 64) - MkDocs Plugin that adds an additional page that.. MIT


Show 9 hidden projects...
- alabaster (🥈32 · ⭐ 670 · 💀) - Lightweight, configurable Sphinx theme. Now the Sphinx..
BSD-3
- sphinx-autobuild (🥉24 · ⭐ 440 · 💀) - Watch a Sphinx directory and rebuild the..
MIT
- mkdocs-with-pdf (🥉23 · ⭐ 200 · 💀) - Generate a single PDF file from MkDocs repository.
MIT
- pycco (🥉22 · ⭐ 810 · 💀) - Literate-style documentation generator.
MIT
- mkdocs-pdf-export-plugin (🥉22 · ⭐ 270 · 💀) - An MkDocs plugin to export content pages as PDF files.
MIT
- portray (🥉21 · ⭐ 800 · 💀) - Your Project with Great Documentation.
MIT
- pytkdocs (🥉19 · ⭐ 46 · 💤) - Load Python objects documentation.
ISC
- mkdocs-git-revision-date-plugin (🥉18 · ⭐ 46 · 💤) - MkDocs plugin for setting revision date from git per..
MIT
- mkdocs-versioning (🥉17 · ⭐ 38 · 💀) - A tool that allows for versioning sites built with..
MIT
Debugging Tools
pyelftools (🥈30 · ⭐ 1.6K) - Parsing ELF and DWARF in Python. Unlicense
gdbgui (🥈29 · ⭐ 9K) - Browser-based frontend to gdb (gnu debugger). Add breakpoints, view.. ❗️GPL-3.0
python-hunter (🥉24 · ⭐ 700) - Hunter is a flexible code tracing toolkit. BSD-2
Birdseye (🥉20 · ⭐ 1.5K · 💤) - Graphical Python debugger which lets you easily view the values of.. MIT
python-manhole (🥉20 · ⭐ 330 · 💤) - Debugging manhole for python applications. BSD-2
Show 1 hidden projects...
Testing Tools
🔗 best-of-web-python - Testing ( ⭐ 1.8K) - Testing libraries & tools for python web frameworks.
🔗 unittest - Unittest is a test framework included in the Python standard library.
robotframework (🥇41 · ⭐ 7.6K) - Generic automation framework for acceptance testing and RPA. Apache-2
hypothesis (🥇41 · ⭐ 6.4K) - Hypothesis is a powerful, flexible, and easy to use library for.. MPL-2.0
pytest-cov (🥇37 · ⭐ 1.4K) - Coverage plugin for pytest. MIT


pytest-xdist (🥈35 · ⭐ 1K) - pytest plugin for distributed testing and loop-on-failures.. MIT


pytest-mock (🥈34 · ⭐ 1.5K) - Thin-wrapper around the mock package for easier use with pytest. MIT


pytest-bdd (🥈34 · ⭐ 1.1K) - BDD library for the py.test runner. MIT


playwright-python (🥈33 · ⭐ 7.7K) - Python version of the Playwright testing and automation.. Apache-2
pytest-html (🥈32 · ⭐ 550) - Plugin for generating HTML reports for pytest results. MPL-2.0


factory_boy (🥈31 · ⭐ 3K) - A test fixtures replacement for Python. MIT
pytest-sugar (🥈31 · ⭐ 960) - a plugin for py.test that changes the default look and feel.. BSD-3


coveralls-python (🥈31 · ⭐ 490) - Show coverage stats online via coveralls.io. MIT


pytest-benchmark (🥉30 · ⭐ 1K) - py.test fixture for benchmarking code. BSD-2


pytest-testinfra (🥉28 · ⭐ 2.1K) - Testinfra test your infrastructures. Apache-2


pytest-asyncio (🥉27 · ⭐ 1.1K) - Asyncio support for pytest. Apache-2


pytest-mypy (🥉27 · ⭐ 220) - Mypy static type checker plugin for Pytest. MIT


pytest-randomly (🥉26 · ⭐ 470) - Pytest plugin to randomly order tests and control random.seed. MIT
pytest-datadir (🥉24 · ⭐ 190) - pytest plugin for manipulating test data directories and.. MIT


pytest-plugins (🥉23 · ⭐ 490) - A grab-bag of nifty pytest plugins. MIT
pytest-docker (🥉22 · ⭐ 320) - Docker-based integration tests. MIT


pytest-lazy-fixture (🥉22 · ⭐ 300 · 💤) - It helps to use fixtures in pytest.mark.parametrize. MIT


pytest-testmon (🥉20 · ⭐ 610) - Selects tests affected by changed files. Executes the.. ❗️AGPL-3.0


Show 10 hidden projects...
- pyautogui (🥈34 · ⭐ 7.5K · 💀) - A cross-platform GUI automation Python module for human beings...
BSD-3
- nose (🥈33 · ⭐ 1.4K · 💀) - nose is nicer testing for python.
❗️LGPL-2.1+
- uiautomator (🥉27 · ⭐ 1.9K · 💀) - Python wrapper of Android uiautomator test tool.
MIT
- PyHamcrest (🥉27 · ⭐ 680) - Hamcrest matchers for Python.
❗Unlicensed
- pytest-watch (🥉26 · ⭐ 670 · 💀) - Local continuous test runner with pytest and watchdog.
MIT
- Mamba Test Runner (🥉25 · ⭐ 500 · 💀) - The definitive testing tool for Python. Born under the..
MIT
- sixpack (🥉21 · ⭐ 1.7K · 💀) - Sixpack is a language-agnostic a/b-testing framework.
BSD-2
- assertpy (🥉19 · ⭐ 380 · 💀) - Simple assertion library for unit testing in python with a fluent..
BSD-3
- fake2db (🥉18 · ⭐ 2.2K · 💀) - create custom test databases that are populated with fake data.
❗️GPL-2.0
- pytest-play (🥉16 · ⭐ 67 · 💀) - pytest plugin that let you automate actions and..
Apache-2
Code Packaging
🔗 Python.org Packaging - An Overview of Packaging for Python.
pyinstaller (🥇42 · ⭐ 9.8K) - Freeze (package) Python programs into stand-alone executables. ❗️GPL-2.0
Nuitka (🥈35 · ⭐ 7.9K) - Nuitka is a Python compiler written in Python. Its fully compatible.. Apache-2
PyOxidizer (🥈30 · ⭐ 4.4K) - A modern Python application packaging and distribution tool. MPL-2.0
cx_Freeze (🥉29 · ⭐ 990) - Create standalone executables from Python scripts, with the same.. Python-2.0
shiv (🥉24 · ⭐ 1.5K) - shiv is a command line utility for building fully self contained Python.. BSD-2
constructor (🥉22 · ⭐ 380) - tool for creating installers from conda packages. BSD-3
subpar (🥉13 · ⭐ 550) - Subpar is a utility for creating self-contained python executables. It.. Apache-2
-
GitHub (👨💻 15 · 🔀 66 · 📋 63 - 52% open · ⏱️ 04.11.2022):
git clone https://github.com/google/subpar
Show 1 hidden projects...
Build Tools
setuptools (🥇45 · ⭐ 1.9K) - Official project repository for the Setuptools build system. MIT
buildbot (🥈36 · ⭐ 4.9K) - Python-based continuous integration testing framework; your pull.. ❗️GPL-2.0
setuptools_scm (🥉32 · ⭐ 660 · 📉) - the blessed package to manage your versions by scm tags. MIT
universal-build (🥉15 · ⭐ 19) - Universal build utilities for containerized build pipelines. MIT
Show 3 hidden projects...
System Monitoring & Profiling
Glances (🥇37 · ⭐ 22K) - Glances an Eye on your system. A top/htop alternative for.. ❗️LGPL-3.0
py-spy (🥈32 · ⭐ 9.4K) - Sampling profiler for Python programs. MIT
-
GitHub (👨💻 31 · 🔀 340 · 📥 11K · 📦 300 · 📋 280 - 35% open · ⏱️ 09.12.2022):
git clone https://github.com/benfred/py-spy
-
PyPi (📥 1.1M / month · 📦 40 · ⏱️ 17.05.2022):
pip install py-spy
-
Conda (📥 350K · ⏱️ 09.09.2022):
conda install -c conda-forge py-spy
-
Cargo (📥 200 / month · 📦 1 · ⏱️ 07.09.2022):
cargo install py-spy
Scalene (🥈32 · ⭐ 6.8K) - Scalene: a high-performance, high-precision CPU, GPU, and memory.. Apache-2
pyinstrument (🥈32 · ⭐ 4.9K · 📉) - Call stack profiler for Python. Shows you why your code is.. BSD-3
memory-profiler (🥈30 · ⭐ 3.7K) - Monitor Memory usage of Python code. BSD-3
Diamond (🥉28 · ⭐ 1.7K) - Diamond is a python daemon that collects system metrics and publishes.. MIT
line_profiler (🥉28 · ⭐ 1.5K) - Line-by-line profiling for Python. BSD-3
Yappi (🥉28 · ⭐ 1K) - Yet Another Python Profiler, but this time multithreading, asyncio and gevent.. MIT
pympler (🥉26 · ⭐ 990) - Development tool to measure, monitor and analyze the memory behavior.. Apache-2
Show 5 hidden projects...
- memory_profiler (🥉27 · ⭐ 3.6K · 💀) - Monitor Memory usage of Python code.
BSD-3
- Profiling (🥉21 · ⭐ 3K · 💀) - Was an interactive continuous Python profiler.
BSD-3
- heartrate (🥉19 · ⭐ 1.5K · 💀) - Simple real time visualisation of the execution of a Python program.
MIT
- pyheat (🥉18 · ⭐ 730 · 💀) - pprofile + matplotlib = Python program profiled as an awesome heatmap!.
MIT
- livepython (🥉12 · ⭐ 2.5K · 💀) - Visually trace Python code in real-time.
MIT
AST Tools
typed_ast (🥈29 · ⭐ 220) - Modified fork of CPythons ast module that parses `# type:` comments. Apache-2
Show 1 hidden projects...
- astunparse (🥉27 · ⭐ 190 · 💀) - An AST unparser for Python.
BSD-3
Others
pre-commit (🥇40 · ⭐ 9.3K) - A framework for managing and maintaining multi-language pre-commit.. MIT
Related Resources
- Best-of lists: Discover other best-of lists with awesome open-source projects on all kinds of topics.
Contribution
Contributions are encouraged and always welcome! If you like to add or update projects, choose one of the following ways:
- Open an issue by selecting one of the provided categories from the issue page and fill in the requested information.
- Modify the projects.yaml with your additions or changes, and submit a pull request. This can also be done directly via the Github UI.
If you like to contribute to or share suggestions regarding the project metadata collection or markdown generation, please refer to the best-of-generator repository. If you like to create your own best-of list, we recommend to follow this guide.
For more information on how to add or update projects, please read the contribution guidelines. By participating in this project, you agree to abide by its Code of Conduct.