我在 Windows 10 上为所有用户安装了 Anaconda 5.1 Python 发行版(由系统管理员)。我可以创建一个环境,然后查看可用的环境:
λ conda create --name py35 python=3.5 anaconda
...
λ conda env list
# conda environments:
#
base * C:\ProgramData\Anaconda3
py35 C:\Users\<my-user-name>\AppData\Local\conda\conda\envs\py35
但是,当我以其他用户身份登录时,只有
base
环境可见/可用。如何创建一个环境并使其可供系统的所有用户使用?
文档讨论了多用户安装,但我看不到如何使环境可供其他用户使用。
我会避免与其他用户共享环境,因为如果他们不知道自己在做什么,他们可能会添加可能与其他包冲突的包和/或什至删除其他用户可能需要的包。首选方法是创建环境后,将其导出为 yml 文件:
conda env export > environment.yml
然后向用户发送 yml 文件并让他们使用 yml 构建自己的环境:
conda env create -f environment.yml
如果您确实想使用每个用户都可以访问的共享环境,那么您必须在创建中使用
-p
或 --prefix
选项:
conda create -p C:/full/public/path/to/py35 python=3.5
然后指示您的用户将公共路径 (
C:/full/public/path/to
) 添加到他们的 conda 配置文件。然后,他们应该能够在运行时看到环境conda env list
。
这里的关键是将包含环境的文件夹的路径添加到用户的conda配置文件.condarc
中。像这样:
envs_dirs:
- C:\full\path\to\environments\folder
这使得所有环境(其中的子文件夹)可供用户使用。似乎不可能提供特定的命名环境。
正如已经指出的,您可以使用
-p
标志在特定位置创建环境,然后将父目录添加到配置文件中,但这不是必需的。但是,如果共享受保护用户区域中存在环境,这可能有助于避免权限错误。在 Windows 10 上,我的用户配置文件位于
C:\Users\<my-user-name>\
中,我只是将上述文本添加到其末尾。
here 列出了以下命令。
拯救环境:
conda list --explicit > my-env.txt
创建环境:
conda env create --file my-env.txt
假设您正在使用 miniconda,将其他用户的 env 文件夹(例如 Python312)软链接到您自己的 ~/miniconda3/envs
cd ~/miniconda3/envs/
ln -s /home/to/otheruser/miniconda3/envs/Python312 ./
就是这样,你可以通过“conda env list”找到新的环境,而无需切换到其他用户或导出路径等。
conda config --add envs_dirs the/path/to/my/env
D:\Anaconda3\envs
conda config --add envs_dirs D:\Anaconda3\envs
conda config --show