Can others reproduce
your conda results?
Using pixi to manage dependencies
in a Python data analysis project

James Thomas
j.thomas@bristol.ac.uk

2025-06-05

Outline

  • What is pixi? (and uv?)
  • Why might you want to use pixi over conda?
  • How do you configure pixi?
  • Example of what this means for a data science project

Note:

  • I am not the developer of these tools
  • You may well know more than me – tips welcome, and thank you to my colleagues Léo and Rita for the feedback 😁

What does pixi do?

Similar to conda, like uv, poetry, npm, …

  • install conda packages (python or R) or PyPI packages
  • manage a conda environment (.pixi) and lockfile
  • multi-platform support

and:

  • globally-accessible tools pixi global or pixi exec
  • task runner
  • create multiple environments
  • easy to install, fast

Number of pixi releases, by month

Bar chart showing number of monthly pixi releases since June 2023. There are 2-5 releases per month, gradually increasing over time. The maximum is currently 7 releases in March 2025.

What does uv do?

Similar to venv + pip, like pip-tools, poetry, …

  • install PyPI packages
  • manage a virtual environment (.venv) and lockfile

and:

  • cheap disposable environments (jupyter lab, pytest)
  • inline script metadata (recreating bugs, demos)
  • globally-accessible tools with uvx (ruff, visidata)
  • cross-platform, easy to install, fast

Why properly managing dependencies
is important (a motivating example using conda)

Someone else updates the project
(and they’re using another platform)

What about the workflow with pixi?

Making changes to the project
(adding new dependencies and new developers)

Applying this in a data science context

Other tips

Wrapping up

  • Find out more: 🔗 pixi.sh (and 🔗 docs.astral.sh/uv)

  • Use for new projects

    • pixi if Conda (uv if just PyPI)
    • package in src/
    • commands pixi run analysis
  • When working with someone
    new to Python

    • pixi run dashboard
      only command they need?
  • Easier than conda/pip by themselves