Skip to content

Python Development Tooling Tutorials

Step-by-step lessons that guide beginners through Python development tool setup and usage.

Tutorials walk you through a working result, one command at a time, with the expected output called out at every step. Pick a tutorial when learning a tool from scratch and looking for a clear path to something that runs.

For a fast answer to a specific problem, see the How-To guides. For background and trade-offs, see Explanation.

To request additional tutorials, please use the feedback form at the bottom of the page.

Build a Python library with a C extension

Create a Python package that calls C functions using cffi and uv, with no prior C experience required.

Build a Python library with a C++ extension

Create a Python package with C++ functions using pybind11, scikit-build-core, and uv.

Build a Python library with a Rust extension

Create a Python package with Rust-powered functions using maturin, PyO3, and uv.

Build and Publish a Python Package with uv, Ruff, ty, pytest, and GitHub Actions

Create a Python library from scratch with uv, add Ruff for linting, ty for type checking, and pytest for testing, then wire everything into GitHub Actions and publish to PyPI with trusted publishing.

Create your first Python project with pixi

Build a weather data analysis tool with pandas and matplotlib, all installed from conda-forge and managed by pixi.

Create your first Python project with uv

Build a text analysis tool from scratch with uv. A hands-on Python tutorial covering project setup, dependencies, and development tools.

Getting started with uv

Install uv, create a Python project, manage dependencies, run code, and switch Python versions in one tutorial.

Publishing Your First Python Package to PyPI

Build and upload a Python package to TestPyPI using uv, learning the publishing workflow.

Run your first Python script with uv

Create and run a Python script using uv, then add a third-party dependency with inline script metadata. No prior Python installation needed.

Set up a complete Python project with uv, Ruff, ty, pytest, and pre-commit

Build a Python project from scratch with uv for project management, Ruff for linting and formatting, ty for type checking, pytest for testing, and pre-commit to enforce quality on every commit.

Set up a data science project with uv

Create a reproducible data science project with pandas, matplotlib, and Jupyter notebooks, all managed by uv.

Set up a Django project with uv

Create a Django project with uv and get it to runserver with the initial migrations applied.

Set up a GPU data science project with pixi

Build a PyTorch image classification project with pixi, using conda-forge for CUDA dependencies and multi-environment support for GPU and CPU variants.

Set up a multi-GPU training environment with uv

Create a distributed PyTorch training project with uv and Hugging Face Accelerate, then scale from one GPU to many without changing your training code.

Set up a Python project optimized for Claude Code

Build a Python project from scratch with uv, Ruff, and pytest, then configure Claude Code with CLAUDE.md instructions, enforcement hooks, and on-demand skills.

Set up Ruff for formatting and checking your code

Configure Ruff to automatically format Python code and check for common errors and style issues.

Setting up GitHub Actions with uv

Automate testing and linting for a Python project using GitHub Actions and uv.

Setting up testing with pytest and uv

Set up a testing environment using pytest with uv, including project structure, fixtures, coverage, and configuration.

Take over an existing conda environment

Learn to work with conda environments you've inherited: create from environment.yml, explore, add dependencies, and export for teammates.

Try Free-Threaded Python with uv

Install the free-threaded build of Python 3.14 with uv, run a CPU-bound threaded benchmark, and see real parallel speedup from lifting the GIL.

Last updated on