Skip to content

pixi and PyPilot ​

pixi is a package manager that installs from conda-forge and PyPI into a per-project environment, with a lock file. PyPilot supports pixi projects fully, and suggests pixi when a project hits a wall pip and uv cannot climb.

What ships when

Engine 1.2.0+ detects pixi projects and works through pixi (pixi install, pixi add --pypi, pixi add python=…, the .pixi/envs/default environment). The rest of this guide, marked 1.3 where it matters (the multi-environment and lock checks, the advisory, migrate-to-pixi, migrate-conda --to pixi, install-pixi, pixi_environment, package_manager = "pixi"), needs engine 1.3.0 or newer.

Why pixi helps ​

pip and uv install Python packages. They cannot install what a source build needs outside Python, and a dependency without a wheel for your platform is a source build.

ProblemWith pip / uvWith pixi
Native libraries. GDAL, PROJ, HDF5, cairo, FFmpeg, eccodes…The library must already be on the system, at the right version (gdal-config must match the bindings exactly)conda-forge ships the library as a package next to the bindings
Compilers and Fortran. SciPy-stack packages without a wheel for your PythonA working C/C++/Fortran toolchain is neededPrebuilt conda-forge binaries
The CUDA toolkit. Extensions with .cu sources need nvccInstall the toolkit system-wide yourselfcuda-toolkit / cuda-nvcc from conda-forge, per project
More than Python. R, Rust, CMake/Meson C++ next to PythonSeparate toolsOne environment, one manifest
Reproducibilityuv has uv.lock; plain pip has nonepixi.lock for every platform listed in the manifest

pixi also installs Python itself, so the interpreter is part of the environment.

What PyPilot does in pixi projects ​

A folder is a pixi project when it has a pixi.toml, or a pyproject.toml with [tool.pixi.workspace]. PyPilot then works only through pixi, whatever package_manager says. Details in PyPilot in pixi projects.

  • The environment is .pixi/envs/<name> (default unless pixi_environment says otherwise). Its Python, packages and GPU builds are read from there.
  • Setup runs pixi install, installing a package runs pixi add --pypi, changing Python runs pixi add python=X.Y.
  • No .venv is created, uv is not run, and pixi.lock is never written by PyPilot.
  • doctor checks every environment, the lock, and every target platform.
~/src/px
$ pypilot doctor
PyPilot doctor: C:\src\px
  package manager : Auto

── Environment ──────────────────────────────────────────
  uv              : present (v0.13.5, on PATH)
  pixi env        : C:\src\px\.pixi\envs\default (Python 3.15)
  pixi project    : C:\src\px\pixi.toml
  interpreters    : 3.15 (python3), 3.14 (C:\Python314\python.exe)
  data tables     : refreshed 3 hours ago (next in 6 days); 1 of 5 bundled

── Project ──────────────────────────────────────────────
  files           : requirements.txt, pixi.toml
  pixi python     : python 3.15.*
  dependencies    : conda: requests, rich · pypi: httpx>=0.28.1,<0.29

── pixi ─────────────────────────────────────────────────
  platforms       : win-64
  pixi.lock       : up to date
  environments    :
    • default (selected)  Python 3.15  conda: requests, rich  pypi: httpx

── Compatibility ────────────────────────────────────────
  supported Python: 3.8–3.15
  recommended     : Python 3.15 (newest the dependencies support within pixi's `python 3.15.*`)
    • httpx                3.8–3.15

── Findings ─────────────────────────────────────────────
  ✓ Everything looks good.

When PyPilot suggests pixi 1.3 ​

Outside pixi projects, PyPilot raises a "pixi can help here" finding when it sees a dependency with no installable wheel whose build needs native libraries that conda-forge provides, a failed build naming a missing header or library, CUDA sources without nvcc, or a repo that mixes Python with R, Rust or C++. See the advisory.

Moving a project to pixi 1.3 ​

pypilot migrate-to-pixi (from pip/uv) and pypilot migrate-conda --to pixi (from environment.yml) preview a pixi.toml and write it only when asked. Your existing files are never edited or deleted. Step by step: Migrating to pixi.

No pixi installed? ​

PyPilot says so, changes nothing, and offers to install it: pypilot install-pixi, PyPilot: Install pixi in VS Code, or the Install pixi button in the notification. It runs pixi's official installer.

Engine: AGPL-3.0-or-later. Zed and VS Code extensions: Apache-2.0. pypilot-cli: AGPL-3.0-or-later.