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
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 standard package installer for downloading and managing packages from PyPI and other indexes.
pipenv
pipenv combines pip and virtualenv to manage application dependencies with automatic environment creation and Pipfile-based configuration.
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
conda-forge is a community-maintained channel of conda packages, offering a free alternative to the commercial Anaconda channel with over 25,000 feedstocks.
pixi
Pixi is a cross-platform package manager and workflow tool that provides access to conda channels alongside PyPI, with project-local environments and a built-in task runner.
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 is a static analysis tool that identifies programming errors, style violations, and potential bugs in Python code.
ruff
ruff is a fast Python linter and formatter that replaces flake8, Black, isort, and other tools with a single binary.
Type Checkers
Static type checkers for Python
mypy
mypy is a static type checker for Python that analyzes type annotations to detect errors before runtime.
pyright
pyright is Microsoft's fast static type checker for Python, powering VS Code's Pylance extension with real-time type analysis, autocompletion, and code navigation.
ty
ty is a fast static type checker and language server for Python, developed by Astral (creators of Ruff and uv).
Test Runners
Frameworks and orchestrators for running Python tests
nox
nox is a Python test automation tool that uses Python files for configuration to run tests across multiple versions and environments.
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
tox is a testing automation tool that manages virtual environments and runs tests across multiple Python versions using INI configuration.
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 standard library module for creating lightweight virtual environments since Python 3.3.
virtualenv
virtualenv is a third-party tool for creating isolated Python environments with their own interpreter and packages.
Build & Publishing
Build backends, frontends, and tools for distributing Python packages
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.
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.
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.