Tutorials

Reproducible Dependency Management with pixi

Thursday, May 15th, 2025 9 a.m.–12:30 p.m. in Room 317

Presented by

Mike Müller

Experience Level:

Some experience

Description

Learn how to manage your conda- and pip-based Python dependencies with pixi. With its declarative approach, pixi provides a reliable way for reproducible Python environments. Its design is based on experiences drawn from tools such as pip, conda and mamba as well as Rust's cargo.

Managing dependencies can be a complex task, especially when it comes to multi-platform support and extensions written in compiled languages, such as C/C++ or Rust, are involved. There are many tools for Python that can help to take care of different aspects of this problem. These tools are external Python packages that are not distributed with Python itself. Only pip is installed by default. Other, more recent languages such as Rust, include the tooling for dependency management as part of the core language. On the other hand, the Python ecosystem for dependency management is very fragmented. In general, there are two main approaches (a) based on pip packages and (b) based on conda packages. Pixi offers an approach that can work with both package types. Its design is inspired by Rust's cargo. In addition to Python packages, pixi can also manage software written in other languages. For example, using conda-forge as the default conda repository, pixi can install tools such as gcc, pandoc, or git. Pixi can work tother with existing tools such as setuptools or poetry. In fact, it uses uv internally to install pip packages.

Search