[Django]-How to update an existing Conda environment with a .yml file

556👍

Try using conda env update:

conda activate myenv
conda env update --file local.yml --prune

--prune uninstalls dependencies which were removed from local.yml, as pointed out in this answer by @Blink.

Attention: if there is a name tag with a name other than that of your environment in local.yml, the command above will create a new environment with that name. To avoid this, use (thanks @NumesSanguis):

conda env update --name myenv --file local.yml --prune

See Updating an environment in Conda User Guide.

80👍

The suggested answer is partially correct. You’ll need to add the –prune option to also uninstall packages that were removed from the environment.yml.
Correct command:

conda env update -f local.yml --prune
👤Blink

35👍

alkamid’s answer is on the right lines, but I have found that Conda fails to install new dependencies if the environment is already active. Deactivating the environment first resolves this:

source deactivate;
conda env update -f whatever.yml;
source activate my_environment_name; # Must be AFTER the conda env update line!
👤Dave

1👍

Recently Conda introduced the option to stack environments, which should solve this problem.

Leave a comment