Anaconda packages are not “free”#

We wanted to inform the wider community about Anaconda Inc. and if you are legally allowed to use their products for free.

What is not commonly known is that Anaconda Inc. has implemented specific clauses in its software licenses which determine if one is able to use Anaconda or Anaconda Navigator for free, based on the organization you work for. For example, The Register has reported that:

Research and academic organizations are just now finding out that they will have to pay for software made by Anaconda, when for years these groups were under the impression it could be used at no cost.

A source who works at a medium-size non-profit academic research institution told The Register about being on the end of a legal demand to purchase a commercial license for the Anaconda-built software they had been using for free.

Anaconda themselves summarize this in a really detailed blog post, which we use here to form the basis of this post.

Glossary#

I want to define a few words which will be used heavily below:

  • conda: This refers to the binary tool that a user calls on the command line. It is a package installation and environment management software.

  • channel or conda channel: It is a centralized repository of packages (python or not) which one can install with conda.

  • distribution: It is an installer that will install conda and configure a default channel to use. For anaconda, this is the “defaults” channel whereas for conda-forge this is the “conda-forge “ channel.

What is free to use?#

  • conda binary.

  • mamba an alternative to conda.

  • Anything that is provided by the conda-forge project which means their packages, the channels they maintain and any distribution they provide.

What is not free to use?#

  • Anaconda’s “defaults” channel, which is used for the base environment. It is used if one installs the Anaconda distribution or the miniconda distribution. Anything that is “curated, built, maintained, and served by Anaconda’s engineers on its secure cloud infrastructure”, has these licenses.

  • Anaconda Navigator which is a Graphical User Interface (GUI) that many people use to manage their Anaconda install.

Using the defaults channel or Anaconda Navigator can lead to you becoming legally required to pay Anaconda Inc. for their use.

If you want to use these for free, you have to meet the following conditions:

  • Your organization has less than 200 people, or

  • Your organization has 200 or more people, but qualifies as an exempt organization in Anaconda’s terms of service:

Students and educational entities may use our free offerings in curriculum-based courses.

Following the publication of the Register article, the CEO of Anaconda, Peter Wang posted on Linkedin. He says that:

I want to be very clear: Anaconda’s installers & package repos are free for teaching, learning, and research at accredited educational institutions worldwide.

and

Our legal team is taking a comprehensive look at the wording in our current ToS, EULA, and related documents, with a focus on clarity for academic and academic research use.

and

In addition, we’re looking into a flexible pricing structure for non-profit organizations with over 200 full-time employees

Hopefully, by the end of the year with these changes in place, users will have a clear understanding if they are allowed to use Anaconda Inc. products for free.

What is the alternative?#

The answer from the SunPy Project is the following:

  • Use the “conda-forge” channel provided by the conda-forge project. conda-forge is a community-led project which creates recipes, hosts infrastructure and distributions for use with conda. They provide a distribution (similar to miniconda) called miniforge is configured to use the “conda-forge” channel by default. It is also the only way to install any SunPy Project library via conda.

  • Never setup or use the “defaults” channel if you install miniforge.

A blog post written by Tim de Jager & Ruben Arts summarizes how conda-forge is free and avoids any vendor lock in.

I have Anaconda or Anaconda Navigator already - What should I do?#

Though, you could get rid of the default channel(s) using the conda config command as shown in this Stack Overflow answer about switching channels from anaconda to conda-forge. This is good for new environments but it doesn’t remove what you’ve got already installed (e.g., the base environment) and you may be still infringing the Terms of Services for Anaconda. If you have Anaconda Navigator, you have to remove it unless you know that you are not violating the license requirements.

Therefore, the cleanest method is to completely remove Anaconda and Anaconda Navigator and install miniforge. Unfortunately, there is no automated way of recreating all of your environments, and this post about migrating from Anaconda to miniforge details the steps that one has to follow to migrate.