Pixi, uv, and Python Package Managers#
cx is a conda distribution bootstrapper. It installs a conda base prefix and
then delegates to the conda CLI. It is not trying to become every project’s
package manager.
The practical rule is: one tool should own an environment. Use cx when the
environment is meant to be managed as a conda environment. Use a project
manager when that project manager owns the environment and lockfile.
For conda users#
Use cx when you want the conda CLI, conda channels, conda packages, and conda
plugins with a locked bootstrap path:
cx create -n data python=3.12 numpy pandas
cx shell data
The main differences from a traditional base installation are the frozen
~/.conda/express base prefix and the cx shell activation model.
For Pixi users#
Pixi is a project-oriented package and
workflow manager built on the conda ecosystem. Keep using Pixi for projects
that are already centered on pixi.toml, pixi.lock, and pixi run.
cx is useful next to Pixi when you want a conda CLI distribution for:
users who expect
conda create,conda install, andconda envconda plugin workflows, including
conda-workspacesa small bootstrap artifact for machines that should have conda available before any project is selected
Do not manually edit a Pixi-managed environment with cx install. Let Pixi own
Pixi environments.
For uv users#
uv is a Python package and project manager. It is a strong fit for Python-only projects, Python tools, virtual environments, and PyPI-centered lockfiles.
Use cx instead when the environment depends on conda packages or conda
channels, for example native libraries, compilers, CUDA stacks, geospatial
packages, or mixed-language scientific environments.
Using both is fine when the boundary is clear:
uvowns Python project environments such as.venv.cxowns conda environments created under the~/.conda/expressprefix.
For pip, Poetry, Hatch, PDM, and pipx users#
Keep using Python package managers for Python package development and
PyPI-first workflows. cx is helpful when you need conda’s binary package
ecosystem or want to install Python tooling through isolated conda
environments:
cx global install ruff
cx global install nox
Avoid mixing managers casually inside one environment. If a conda environment
needs a small number of PyPI packages, use the conda plugin workflow available
in the cx base. If a Python project is already managed by uv, Poetry, Hatch,
or PDM, let that tool keep control of its project environment.