# Building reproducible Python environments with XARs

DevFeed: [Building reproducible Python environments with XARs](<https://devfeed.tech/articles/building-reproducible-python-environments-with-xars-20155.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/building-reproducible-python-environments-with-xars/>)

Author: Pavel Senchanka

Published: 2023-04-14T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Conda](<https://devfeed.tech/topics/conda.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [conda](<https://devfeed.tech/tags/conda.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [python](<https://devfeed.tech/tags/python.md>), [reproducibility](<https://devfeed.tech/tags/reproducibility.md>)

## AI overview

Jane Street describes how it built js-python, a system for creating and deploying centrally built, reproducible Python environments. The system integrates Python environments with OCaml code and uses XAR for deployment after limitations with Conda and other tools became apparent.

## Source excerpt

Our traders and researchers love Python for its agility and for its huge open-source ecosystem, especially when it comes to machine learning. But the heavy use of notebooks can make it difficult to support. Notebooks have a very different lifecycle than regular code, and aren't always rigorously version controlled. And while most of our code (much of it written in OCaml) lives in a monorepo, putting all notebooks there is difficult; many notebooks end up being stored all over the place.