Anaconda Project#

Reproducible and executable project directories

Anaconda Project encapsulates data science projects and makes them easily portable. anaconda-project automates setup steps such as installing the right packages, downloading files, setting environment variables and running commands.

anaconda-project makes it easy to reproduce your work, share projects with others and run them on different platforms. It also simplifies deployment to servers. Anaconda projects run the same way on your machine, on another user’s machine or when deployed to a server.

Traditional build scripts such as setup.py automate building the project—going from source code to something runnable—while anaconda-project automates running the project—taking build artifacts and doing any necessary setup before executing them.

You can use anaconda-project on Windows, macOS and Linux.

Project is supported and offered by Anaconda, Inc® and contributors under a 3-clause BSD license.

Project status#

Anaconda Project has not been actively developed in some time and has largely been superseded by newer alternatives. conda-project was the first follow-on effort; today, pixi and uv represent the first truly successful successors. conda-workspaces is a promising pixi-compatible alternative for users who prefer to stay closer to the conda ecosystem.

For that reason, recent work on this repository has been (and will remain) focused on critical bug fixes and on the ability to convert existing Anaconda Project projects into the pixi and conda-workspaces formats. See Pixi support for details on the conversion tooling.

Quick Start#

Check out the Getting started guide

Benefits of anaconda-project#

  • A README file that contains setup steps can become outdated, or users might not read it and then you have to help them diagnose problems. anaconda-project automates the setup steps so that the README file need only say “Type anaconda-project run.”

  • anaconda-project facilitates collaboration by ensuring that all users working on a project have the same dependencies in their Conda environments. anaconda-project automates environment creation and verifies that environments have the right versions of packages.

  • You can run os.getenv("DB_PASSWORD") and configure anaconda-project to prompt the user for any missing credentials. This allows you to avoid including your personal passwords or secret keys in your code.

  • anaconda-project improves reproducibility. Someone who wants to reproduce your analysis can ensure that they have the same setup that you have on your machine.

  • anaconda-project simplifies deployment of your analysis as a web application. The configuration in anaconda-project.yml tells hosting providers how to run your project, so no special setup is needed when you move from your local machine to the web.

How anaconda-project works#

By adding an anaconda-project.yml configuration file to your project directory, a single anaconda-project run command can set up all dependencies and then launch the project. Running an Anaconda project executes a command specified in the anaconda-project.yml file, where you can also configure any arbitrary commands.

anaconda-project automates project setup by establishing all prerequisite conditions for the project’s commands to execute successfully. These conditions could include:

  • Creating a Conda environment that includes certain packages.

  • Prompting the user for passwords or other configuration.

  • Downloading data files.

  • Starting extra processes such as a database server.