Project Setup

Project Setup & Dependency Management

Set up Python CLI projects with pyproject.toml, uv or Poetry, virtual environments, versioning strategies, and automated release workflows.

Updated

Every reliable Python CLI starts with a foundation you rarely think about again: a clean pyproject.toml, a reproducible dependency lockfile, an isolated environment, and a release process that won't surprise you at 2 a.m. This track walks you from an empty directory to a packaged tool that installs the same way on every machine.

If you're starting a brand-new CLI, read the guides in the order below. If you're hardening an existing project, jump straight to the topic you're fighting with today.

Project setup pipeline: Scaffold, Dependencies, Isolation, Quality gates, Version & release — from an empty directory to a shipped CLI.

What this track covers

Choosing and driving your toolchain

Isolation and reproducibility

Scaffolding, quality gates, and releases

  1. Pick a dependency manager — start with uv unless your team already runs Poetry.
  2. Lock down environment isolation so builds are reproducible.
  3. Capture the layout in a Cookiecutter template so the next project is free.
  4. Add pre-commit gates before the codebase grows.
  5. Automate versioning and changelogs before your first release.

Once the foundation is in place, move on to designing the command surface in Modern Python CLI Frameworks & Architecture, and polishing how your tool reads input and talks back in Advanced Input Parsing & User Experience.