
Image by Author
# Introduction
Python is now one of the most popular languages with applications in software development, data science, and machine learning. Its flexibility and rich collection of libraries make it a favorite among developers in almost every field. However, working with multiple Python environments can still be a significant challenge. This is where Pixi comes to the rescue. It addresses the real challenges of reproducibility and portability at every level of development. Teams working on machine learning, web applications, or data pipelines get consistent environments, smoother continuous integration/continuous deployment (CI/CD) workflows, and faster onboarding. With its isolated per-project design, it brings a modern and reliable approach to Python environment management. This article explores how to manage Python environments using Pixi.
# Why Environment Management Matters
Managing Python environments may sound easy at the beginning with tools like venv or virtualenv. However, as soon as projects grow in scope, these approaches show their limitations. Frequently, you find yourself reinstalling the same packages for different projects repeatedly, which becomes repetitive and inefficient. Additionally, trying to keep dependencies in sync with your teammates or across production servers can be difficult; even a small version mismatch can cause the project to fail. Sharing or replicating environments can become disorganized quickly, leading to situations where one setup of a dependency works on one machine but breaks on another. These environment issues can slow development, create frustration, and introduce unnecessary inconsistencies that hinder productivity.


Pixi Workflow: From Zero to Reproducible Environment | Image by Editor
# Step-by-Step Guide to Use Pixi
// 1. Install Pixi
For macOS / Linux:
Open your terminal and run:
# Using curl
curl -fsSL | sh
# Or with Homebrew (macOS only)
brew install pixi
Now, add Pixi to your PATH:
# If using zsh (default on macOS)
source ~/.zshrc
# If using bash
source ~/.bashrc
For Windows:
Open PowerShell as administrator and run:
powershell -ExecutionPolicy ByPass -c "irm -useb | iex"
# Or using winget
winget install prefix-dev.pixi
// 2. Initialize Your Project
Create a new workspace by running the following command:
pixi init my_project
cd my_project
Output:
✔ Created /Users/kanwal/my_project/pixi.toml
The pixi.toml file is the configuration file for your project. It tells Pixi how to set up your environment.
// 3. Configure pixi.toml
Currently your pixi.toml looks something like this:
[workspace]
channels = ["conda-forge"]
name = "my_project"
platforms = ["osx-arm64"]
version = "0.1.0"
[tasks]
[dependencies]
You need to edit it to include the Python version and PyPI dependencies:
[workspace]
name = "my_project"
channels = ["conda-forge"]
platforms = ["osx-arm64"]
version = "0.1.0"
[dependencies]
python = ">=3.12"
[pypi-dependencies]
numpy = "*"
pandas = "*"
matplotlib = "*"
[tasks]
Let’s understand the structure of the file:
- [workspace]: This contains general project information, including the project name, version, and supported platforms.
- [dependencies]: In this section, you specify core dependencies such as the Python version.
- [pypi-dependencies]: You define the Python packages to install from PyPI (like
numpyandpandas). Pixi will automatically create a virtual environment and install these packages for you. For example,numpy = "*"installs the latest compatible version of NumPy. - [tasks]: You can define custom commands you want to run in your project, e.g., testing scripts or script execution.
// 4. Install Your Environment
Run the following command:
Pixi will create a virtual environment with all specified dependencies. You should see a confirmation like:
✔ The default environment has been installed.
// 5. Activate the Environment
You can activate the environment by running a simple command:
Once activated, all Python commands you run in this shell will use the isolated environment created by Pixi. Your terminal prompt will change to show your workspace is active:
(my_project) kanwal@Kanwals-MacBook-Air my_project %
Inside this shell, all installed packages are available. You can also deactivate the environment using the following command:
// 6. Add/Update Dependencies
You can also add new packages from the command line. For example, to add SciPy, run the following command:
Pixi will update the environment and ensure all dependencies are compatible. The output will be:
✔ Added scipy >=1.16.3,
// 7. Run Your Python Scripts
You can also create and run your own Python scripts. Create a simple Python script, my_script.py:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy
print("All packages loaded successfully!")
You can run it as follows:
This will output:
All packages loaded successfully!
// 8. Share Your Environment
To share your environment, first commit pixi.toml and pixi.lock to version control:
git add pixi.toml pixi.lock
git commit -m "Add Pixi project configuration and lock file"
git push
After this, you can reproduce the environment on another machine:
git clone
cd
pixi install
Pixi will recreate the exact same environment using the pixi.lock file.
# Wrapping Up
Pixi provides a smart approach by integrating modern dependency management with the Python ecosystem to improve reproducibility, portability, and speed. Because of its simplicity and reliability, Pixi is becoming a must-have tool in the toolbox of modern Python developers. You can also check the Pixi documentation to learn more.
Kanwal Mehreen is a machine learning engineer and a technical writer with a profound passion for data science and the intersection of AI with medicine. She co-authored the ebook “Maximizing Productivity with ChatGPT”. As a Google Generation Scholar 2022 for APAC, she champions diversity and academic excellence. She’s also recognized as a Teradata Diversity in Tech Scholar, Mitacs Globalink Research Scholar, and Harvard WeCode Scholar. Kanwal is an ardent advocate for change, having founded FEMCodes to empower women in STEM fields.

