How to share an Anaconda Python environment between multiple users?
I would shy away from sharing environments with other users, because if they don't know what they are doing, they could add packages that could conflict with other packages and/or even delete packages that another user might need. The preferred approach is that after you have created an environment, you export it as a yml file:
conda env export > environment.yml
Then you send the users the yml file and have them build their own environment using the yml:
conda env create -f environment.yml
If you really want to use a shared environment where every user can access, then you have to use the -p
or --prefix
option in your create:
conda create -p C:/full/public/path/to/py35 python=3.5
And then instruct your users to add the public path (C:/full/public/path/to
) to their conda config file. Then, they should be able to see the environment when running conda env list
.
The Conda-Cheatseet here lists these following commands.
Save Environment:
conda list --explicit > my-env.txt
Create Environment:
conda env create --file my-env.txt
The key here is adding the path to the folder containing the environment(s) to the user's conda configuration file .condarc
. Like this:
envs_dirs:
- C:\full\path\to\environments\folder
This makes all the environments (subfolders within) available to the user. It does not appear to be possible to make a specific, named environment available.
As has been pointed out, you can create an environment in a specific location using the -p
flag, and then add the parent directory to the configuration file, but this is not a requirement. This may be useful, however, to avoid permissions errors if sharing environments that exists in protected user areas.
On Windows 10, my user configuration file was in C:\Users\<my-user-name>\
, and I just added the above text to the end of it.