The Complete Python Development Guide

Develop Python apps with confidence by
mastering the tools needed to ship well-tested, high-quality code.

Get Started
Various symbols, cogs, and lines shown in an application window on a desktop computer

Software development
is more than just writing code.

Writing code is just the first step toward building an application. You need to deploy, maintain, and evolve it. By using the right tools you can simplify your development and focus on providing value to your users.

The Complete Python Development Guide provides a roadmap where you'll learn which tools to choose and how to use them so that you can build truly awesome Python applications.

The best part? The guide is completely free.

What's in the guide?

The Complete Python Development Guide covers topics like setting up your Python development environment, implementing a Python-first test-driven strategy, and covers documentation tools that will help you stay sane while collaborating with other developers.

You don't have to learn everything all at once. The guide is meant to be read over a longer period as you write more and more code.

  • Manage dependencies with pip, venv, poetry, and pipenv
  • Use Sphinx and Read the Docs to document your app
  • Learn to catch lint, PEP8, and security violations
  • Apply what you learn to popular frameworks, like Flask, FastAPI, and Django
  • Use pytest and pydantic to simplify Test-Driven Development
  • Build Python apps knowing they'll work as expected

Start Here

Modern Python Environments - dependency and workspace management

This article looks at the available tools for dependency and workspace management in Python.

Read Tutorial

Testing in Python

This article looks at some tools and techniques that help make testing in Python easier.

Read Tutorial

Modern Test-Driven Development in Python

Interested in how TDD works? This guide walks you through the process, using modern tools and techniques, from start to finish.

Read Tutorial

Python Code Quality

Improve the quality of your Python code with linters, code formatters, and security vulnerability scanners.

Read Tutorial

Python Type Checking

This article looks at what type hints are and how they can benefit you. We'll also dive into how you can use Python's type system for type checking.

Read Tutorial

Documenting Python Code and Projects

This article looks at why you should document your Python code and how to generate project documentation with Sphinx and OpenAPI.

Read Tutorial

Python Project Workflow

This article looks at how to configure GitHub Actions to distribute a Python package to PyPI and Read the Docs.

Read Tutorial

Meet the Author

Jan Giacomelli

Jan Giacomelli

Jan is a software engineer who lives in Ljubljana, Slovenia, Europe. He is a Staff Software Engineer at where he is leading backend engineering efforts. He loves Python, FastAPI, and Test-Driven Development. When he's not writing code, deploying to AWS, or speaking at a conference, he's probably skiing, windsurfing, or playing guitar. Currently, he's working on his new course Complete Python Testing Guide.