如何在多个用户之间共享Anaconda Python环境?

问题描述 投票:0回答:5

我在 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
环境可见/可用。如何创建一个环境并使其可供系统的所有用户使用?

文档讨论了多用户安装,但我看不到如何使环境可供其他用户使用。

python anaconda
5个回答
32
投票

我会避免与其他用户共享环境,因为如果他们不知道自己在做什么,他们可能会添加可能与其他包冲突的包和/或什至删除其他用户可能需要的包。首选方法是创建环境后,将其导出为 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


16
投票

这里的关键是将包含环境的文件夹的路径添加到用户的conda配置文件.condarc

中。像这样:

envs_dirs: - C:\full\path\to\environments\folder

这使得所有环境(其中的子文件夹)可供用户使用。似乎不可能提供特定的命名环境。

正如已经指出的,您可以使用

-p

 标志在特定位置创建环境,然后将父目录添加到配置文件中,但这不是必需的。但是,如果共享受保护用户区域中存在环境,这可能有助于避免权限错误。

在 Windows 10 上,我的用户配置文件位于

C:\Users\<my-user-name>\

 中,我只是将上述文本添加到其末尾。 


3
投票
Conda-Cheatseet

here 列出了以下命令。

拯救环境:

conda list --explicit > my-env.txt

创建环境:

conda env create --file my-env.txt
    

0
投票
如果 Linux 用户有兴趣,我找到了一个最简单的方法来解决这个问题,只要对方给你开放相应的权限,你可以简单地将其软链接到你自己的 env 文件夹:

假设您正在使用 miniconda,将其他用户的 env 文件夹(例如 Python312)软链接到您自己的 ~/miniconda3/envs

cd ~/miniconda3/envs/ ln -s /home/to/otheruser/miniconda3/envs/Python312 ./
就是这样,你可以通过“conda env list”找到新的环境,而无需切换到其他用户或导出路径等。


0
投票
如果您想将目录添加到环境目录中,可以使用以下命令:

conda config --add envs_dirs the/path/to/my/env


您需要将“the/path/to/my/env”替换为 env 文件夹的完整路径。例如,如果我想将以下路径添加到环境目录中

D:\Anaconda3\envs


我来执行

conda config --add envs_dirs D:\Anaconda3\envs


要查看所有环境目录(和其他配置)的列表,您可以运行以下命令:

conda config --show


    

© www.soinside.com 2019 - 2024. All rights reserved.