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.
| Problem | With pip / uv | With 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 Python | A working C/C++/Fortran toolchain is needed | Prebuilt conda-forge binaries |
The CUDA toolkit. Extensions with .cu sources need nvcc | Install the toolkit system-wide yourself | cuda-toolkit / cuda-nvcc from conda-forge, per project |
| More than Python. R, Rust, CMake/Meson C++ next to Python | Separate tools | One environment, one manifest |
| Reproducibility | uv has uv.lock; plain pip has none | pixi.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>(defaultunlesspixi_environmentsays otherwise). Its Python, packages and GPU builds are read from there. - Setup runs
pixi install, installing a package runspixi add --pypi, changing Python runspixi add python=X.Y. - No
.venvis created, uv is not run, andpixi.lockis never written by PyPilot. - doctor checks every environment, the lock, and every target platform.
$ 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.
