Reproducible and executable project directories
Anaconda Project encapsulates data science projects and makes them easily portable. Project automates setup steps such as installing the right packages, downloading files, setting environment variables and running commands.
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 Project automates running the project—taking
build artifacts and doing any necessary setup before executing
You can use Project on Windows, macOS and Linux.
Project is supported and offered by Continuum Analytics® and contributors under a 3-clause BSD license.
Benefits of Project¶
READMEfile that contains setup steps can become outdated, or users might not read it and then you have to help them diagnose problems. Project automates the setup steps so that the
READMEfile need only say “Type
- Project facilitates collaboration by ensuring that all users working on a project have the same dependencies in their conda environments. Project automates environment creation and verifies that environments have the right versions of packages.
- You can run
os.getenv("DB_PASSWORD")and configure Project to prompt the user for any missing credentials. This allows you to avoid including your personal passwords or secret keys in your code.
- Project improves reproducibility. Someone who wants to reproduce your analysis can ensure that they have the same setup that you have on your machine.
- Project simplifies deployment of your analysis as a web application. The configuration in
anaconda-project.ymltells hosting providers how to run your project, so no special setup is needed when you move from your local machine to the web.
How 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
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.
Currently, the Project API and command-line syntax are subject to change in future releases. A project created with the current beta version of Project may always need to be run with that version of Project and not Project 1.0. When we think things are solid, we will switch from beta to version 1.0, and you will be able to rely on long-term interface stability.