Skip to content

Python Developer Tools Reference

Quick-reference pages describing individual Python development tools, their features, and ecosystem role.

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 automates building Python wheels across operating systems, architectures, and Python versions in CI.

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 focused on building and publishing pure Python packages with minimal configuration.

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 package indexes, handling authentication and TLS verification.

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 automatically loads and unloads environment variables based on the current directory, useful for Python project-specific settings.

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.

pdb

pdb is Python's built-in interactive debugger for stepping through code, inspecting variables, and post-mortem analysis.

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 experimental replacement for requirements.txt, used by pipenv for declaring project dependencies.

pipx

pipx installs and runs Python command-line applications in isolated environments to avoid dependency conflicts.

pyproject.toml

pyproject.toml is the standard configuration file for modern Python projects. It holds project metadata, dependencies, build-system requirements, and tool settings in one TOML file.

Python Packaging User Guide

The Python Packaging User Guide is the official documentation for packaging, publishing, and installing Python projects using PyPA tools.

requirements.txt

requirements.txt is a plain-text file format for declaring Python package dependencies, consumed by pip and uv.

uvx

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

Profilers

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

Last updated on

Please submit corrections and feedback...