pythonconda

Forbid usage of defaults channel in Conda


This one is getting a bit annoying for me: defaults channel is apparently paid and cannot be used commercially. Still, it is very difficult to get rid of it, as it keeps randomly re-appearing.

I made an environment, installing everything from conda-forge, and exported that environment to environment.yml. Now, I want this environment.yml to be shareable, even to colleagues who have no idea about differences between conda-forge and defaults channel. The top of my environment.yml:

name: py38     
channels:      
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=conda_forge

However, if I now copy this environment.yml somewhere else and run conda env create -f environment.yml, I see this:

Channels:
 - conda-forge
 - defaults 

Is there a way to specify NOT using defaults channel already from environment.yml? I know you can do it in .condarc when you already have environment but that is not really the point... I want to avoid accidentally usage of defaults directly from the environment.yml.


Solution

  • Default channel can be forbidden by adding the nodefaults channel

    channel:
      - conda-forge
      - nodefaults
    

    Conda docs