Python Development Tooling Tutorials
Step-by-step lessons that guide beginners through Python development tool setup and usage.
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.
Create your first Python project
Build a text analysis tool from scratch using uv, with no prior Python experience required.
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.
Getting started with uv
Install uv, create a Python project, manage dependencies, run code, and switch Python versions in one tutorial.
Migrate a conda project to pixi
Convert an existing conda environment.yml to a pixi project with pixi.toml, a lockfile, tasks, and project-local environments.
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 data science project with uv
Create a reproducible data science project with pandas, matplotlib, and Jupyter notebooks, all managed by uv.
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 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.