Skip to content

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

Scientific Python

conda-family tools for data science, ML, and CUDA workflows

Linters & Formatters

Tools that lint and format Python source code

Type Checkers

Static type checkers for Python

Test Runners

Frameworks and orchestrators for running Python tests

Python Versions & Virtualenvs

Tools for installing Python interpreters and creating virtual environments

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

Flit is a lightweight Python packaging tool for building and publishing pure-Python packages. Its flit-core build backend carries 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

setup.cfg is an INI-style configuration file for setuptools that holds project metadata, dependencies, and build options in a declarative form. It predates pyproject.toml's [project] table and is now considered legacy for metadata, though still valid for setuptools-specific options and tool configuration.

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 and unloads environment variables based on the current directory, useful for activating Python virtual environments and exporting per-project settings without polluting the global shell.

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 is a macOS and Linux package manager that can install Python tools and dependencies, though not recommended for Python development.

IPython

IPython is an enhanced interactive Python interpreter with syntax highlighting, tab completion, magic commands, and Jupyter kernel support.

marimo

marimo is a reactive Python notebook stored as a plain .py file. Cells re-run automatically when their inputs change, and PEP 723 inline metadata lets uv launch notebooks in isolated environments.

Material for MkDocs

Material for MkDocs is a theme for MkDocs that adds search, dark mode, code annotations, and a wide configuration surface, used by FastAPI, Typer, and SQLModel.

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

pdb is Python's standard-library interactive debugger. Use `breakpoint()` to enter, step through code, inspect variables, and customize behavior via `~/.pdbrc`.

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 (PyPUG) is the official documentation for packaging, publishing, and installing Python projects using tools maintained by the Python Packaging Authority.

Read the Docs

Read the Docs is a hosted documentation platform that builds, versions, and serves project documentation automatically whenever code is pushed to a Git repository.

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 is a documentation generator that turns reStructuredText or Markdown source files into HTML, PDF, ePub, and other formats. It is the default doc tool for CPython and most of the scientific Python ecosystem.

uvx

uvx runs Python command-line tools in temporary isolated environments without installing them permanently. It is an alias for uv tool run.

watchfiles

watchfiles is a Python library and CLI for filesystem monitoring, backed by Rust's notify crate. It powers uvicorn's --reload mode and provides both synchronous and asynchronous APIs for watching files and restarting processes on changes.

Profilers

Sampling and deterministic profilers for CPU, memory, and GPU code

Last updated on