Python Developer Tools Reference
Quick-reference pages describing individual Python development tools, their features, and ecosystem role.
Reference pages describe each Python development tool: what it does, what it ships with, where it fits in the ecosystem, and which related tools exist. They are meant for quick lookup, not end-to-end reading.
For task-shaped questions, see the How-To guides. For step-by-step setup, see the Tutorials.
The groups below cluster tools by the job they do.
Package & Project Managers
Tools that install dependencies and manage Python projects
conda-pypi
conda-pypi is a conda plugin that installs PyPI packages into conda environments, tracked by conda's solver alongside native conda packages.
hatch
hatch is a PyPA-maintained Python project manager combining environment management, building, publishing, and version management.
PDM
PDM is a Python package and dependency manager built on the modern PEP 517/518 build-system interface and PEP 621 project metadata in pyproject.toml.
pip
pip is Python's default package installer. Key features, known limitations, and when to consider uv or conda as alternatives.
pipenv
Combines pip and virtualenv into one CLI: auto venvs, dependency management, Pipfile lockfiles.
poetry
Poetry is a Python packaging and dependency management tool handling installation, environments, building, and publishing via pyproject.toml.
uv
uv is a high-performance Python package and project manager that unifies dependency management, environment creation, code formatting, and version control.
Scientific Python
conda-family tools for data science, ML, and CUDA workflows
Anaconda
Anaconda Distribution is a Python and R data science platform bundling conda, pre-installed scientific libraries, and GUI tools.
Conda
conda is a language-agnostic package and environment manager used primarily in scientific computing and data science.
Conda Package
A conda package is a compressed archive containing pre-built binaries, metadata, and dependency information for distribution through conda channels.
conda-forge
Community-maintained conda channel with 25,000+ packages. Free for all use, including commercial.
pixi
Cross-platform package manager combining conda-forge and PyPI with project-local environments.
Linters & Formatters
Tools that lint and format Python source code
Black
Black is an opinionated Python code formatter that enforces a strict subset of PEP 8 with minimal configuration options.
flake8
Flake8 combines PyFlakes, pycodestyle, and mccabe into a single Python linting tool, now largely superseded by Ruff.
prek
prek is a fast drop-in replacement for pre-commit that runs faster, uses less disk, and needs no Python dependency.
pylint
Pylint: static analyzer catching errors beyond style linters—duplicate code, cyclomatic complexity, design issues.
pyproject-fmt
Opinionated pyproject.toml formatter: sorts deps, normalizes specifiers, reorders tables, generates classifiers.
ruff
Ruff is a fast Python linter and formatter that replaces flake8, Black, isort, and pyupgrade. Features, installation, pros and cons vs pylint.
Type Checkers
Static type checkers for Python
basedpyright
Basedpyright: pyright fork with Pylance editor features, PyPI distribution, stricter diagnostic rules, and no Node.js dependency.
mypy
mypy is the original Python static type checker. Pros, cons, configuration options, and how it compares to Pyright and ty.
pyrefly
Pyrefly is a Rust-based static type checker and language server for Python, developed by Meta, with aggressive type inference and IDE features.
pyright
Microsoft's fast type checker powering VS Code's Pylance extension with real-time analysis.
ty
ty is a Python type checker and language server from OpenAI. Features, configuration, IDE integration, and how it compares to mypy and Pyright.
zuban
Zuban: Rust type checker with mypy and pyright modes, from Jedi's author. Fast performance, AGPL-3.0 or commercial license.
Test Runners
Frameworks and orchestrators for running Python tests
nox
Nox: Python test automation tool using Python code for configuration. Supports uv backend, pyproject.toml, multi-version matrices.
pytest
pytest is a Python testing framework with concise syntax, powerful fixtures, parameterized testing, and a rich plugin ecosystem.
tox-uv
tox-uv is a tox plugin that replaces pip and virtualenv with uv for faster environment creation and dependency installation.
tox
Testing automation tool managing virtual environments across Python versions via tox.toml or pyproject.toml.
Python Versions & Virtualenvs
Tools for installing Python interpreters and creating virtual environments
pyenv-virtualenv
pyenv-virtualenv is a pyenv plugin for creating and auto-activating virtual environments tied to specific Python versions.
pyenv
pyenv is a command-line tool for installing, managing, and switching between multiple Python interpreter versions on macOS and Linux.
venv
venv is Python's built-in module for creating virtual environments. How to create, activate, and use venv vs virtualenv and uv.
virtualenv
virtualenv creates isolated Python environments with their own interpreter and packages. Faster than venv, with broader interpreter support.
Build & Publishing
Build backends, frontends, and tools for distributing Python packages
Briefcase
Briefcase packages Python apps for iOS, Android, macOS, Windows, Linux, and Web from a single pyproject.toml config. Part of BeeWare.
build
build is PyPA's PEP 517-compliant frontend tool for building Python packages using any standards-compliant build backend.
cibuildwheel
cibuildwheel is a CI tool that automates building Python wheels across multiple operating systems, architectures, and Python versions for distribution.
cx_Freeze
cx_Freeze freezes Python apps into native installers (MSI, DMG, AppImage, deb, rpm) for Windows, macOS, and Linux from one config.
distutils
distutils was Python's original standard library module for building and distributing packages, deprecated in Python 3.10 and removed in Python 3.12.
Flit
Lightweight build and publish tool for pure-Python packages with zero runtime dependencies.
Nuitka
Nuitka compiles Python source to C and links against libpython, producing standalone native executables for Windows, macOS, and Linux.
PyInstaller
PyInstaller bundles a Python app and the CPython interpreter into a single distributable for Windows, macOS, and Linux. No runtime Python needed.
sdist
An sdist (source distribution) is a Python package format containing raw source code that may need building during installation.
setup.cfg
Legacy INI-style setuptools configuration file for project metadata, dependencies, and build options. Superseded by pyproject.toml for metadata.
setuptools
setuptools is Python's original and most established build backend for building, distributing, and installing packages.
Twine
Twine uploads Python packages to PyPI and other indexes with secure authentication and TLS verification, handling credentials safely.
Wheel
A wheel is a pre-built binary distribution format for Python packages, defined by PEP 427, enabling fast installation.
Standards & Supporting Tools
pyproject.toml, requirements.txt, pipx, IPython, and the rest of the supporting cast
Cookiecutter
Cookiecutter is a command-line tool that creates project structures from templates using Jinja2 variable replacement.
direnv
direnv: loads/unloads environment variables per directory. Activate Python venvs and manage project settings without global pollution.
Furo
Furo is a clean, customisable Sphinx theme with built-in light and dark modes, used by pip, attrs, and many smaller Python projects.
homebrew
Homebrew installs system software on macOS and Linux. Python developers use it to install uv, pipx, and system libraries, not to manage Python versions for projects.
IPython
IPython is an enhanced interactive Python interpreter with syntax highlighting, tab completion, magic commands, and Jupyter kernel support.
marimo
Reactive Python notebook as a .py file. Cells re-run when inputs change. PEP 723 metadata lets uv run in isolated environments.
Material for MkDocs
MkDocs theme with search, dark mode, code annotations. Powers FastAPI, Pydantic, SQLModel docs.
MkDocs
MkDocs is a static site generator that builds project documentation from Markdown source files and a single YAML configuration file.
mkdocstrings
mkdocstrings is a MkDocs plugin that injects API documentation generated from source code (Python, C, TypeScript, and more) into Markdown pages.
pdb
Python's interactive debugger in stdlib. Set breakpoints with `breakpoint()`, step through code, inspect variables.
pip-tools
pip-tools provides pip-compile for resolving and locking dependencies and pip-sync for synchronizing environments to lockfiles.
Pipfile
Pipfile is a TOML-based dependency declaration format used by Pipenv as a replacement for requirements.txt.
pipx
pipx installs Python CLI tools in isolated virtual environments so their dependencies never conflict. How it compares to uv tool and pip.
pyproject.toml
pyproject.toml is the standard config file for Python projects, holding metadata, dependencies, build-system settings, and tool config.
Python Packaging User Guide
The Python Packaging User Guide is PyPA's official documentation for packaging standards, tools like pip and build, and publishing to PyPI.
Read the Docs
Hosted platform that builds, versions, and serves Python docs from Git repositories.
requirements.txt
requirements.txt is a plain-text format for declaring Python package dependencies, used by pip, uv, and pip-tools as deployment artifacts or lockfiles.
sphinx-autobuild
sphinx-autobuild watches a Sphinx documentation source tree and rebuilds the HTML on every change, refreshing the browser automatically.
Sphinx
Sphinx: documentation generator for reStructuredText or Markdown. Powers Python docs, NumPy, SciPy. Supports HTML, PDF, ePub, autodoc.
uvx
uvx runs Python command-line tools in temporary isolated environments without installing them permanently. It is an alias for uv tool run.
watchfiles
Filesystem monitoring library backed by Rust's notify crate. Powers uvicorn --reload; provides sync and async APIs for file watching.
Profilers
Sampling and deterministic profilers for CPU, memory, and GPU code