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

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

Last updated on