提问者:小点点

如何将conda环境“克隆”到根环境中?


我希望conda的根环境将所有包复制到另一个环境中。如何做到这一点?


共3个答案

匿名用户

可以选择将依赖项名称/urls/版本复制到文件。

建议数

通常,在新环境中工作比更改根目录更安全。但是,在尝试更改之前,请考虑备份现有环境。通过在演示环境中测试这些命令来验证所需的结果。要备份您的根目录env,例如:

λ conda activate root
λ conda env export > environment_root.yml
λ conda list --explicit > spec_file_root.txt

选择权

选项1-YAML文件

在第二个环境(例如myenv)中,将名称导出到yaml文件:

λ activate myenv
λ conda env export > environment.yml  

然后用yaml文件更新第一个环境(例如root):

λ conda env update --name root --file environment.yml     

选项2-克隆环境

使用--clone标志来克隆环境(请参阅@DevC的帖子):

λ conda create --name myclone --clone root

这基本上是创建环境的直接副本。

选项3-等级库文件

创建一个规范文件以从env附加依赖项(参见@Ormetrom):

λ activate myenv
λ conda list --explicit > spec_file.txt
λ conda install --name root --file spec_file.txt

或者,复制一个新环境(建议):

λ conda create --name myenv2 --file spec_file.txt

另见

  • conda env了解有关env子命令的更多详细信息

额外费用

似乎有一个未记录的conda run选项可帮助在特定环境中执行命令。

# New command
λ conda run --name myenv conda list --explicit > spec_file.txt

后一个命令在没有激活/停用步骤的环境中运行命令时非常有效。请参见下面的等效命令:

# Equivalent
λ activate myenv
λ conda list --explicit > spec_file.txt
λ deactivate

注意,这可能是一个实验性的特性,因此在正式引入公共API之前,这可能不适合在生产中使用。

Conda文档自原始帖子以来已经更改;链接更新。Spec-file仅适用于在同一操作系统上创建的环境。与前两个选项不同,spec-file只捕获到conda依赖项的链接;pip依赖项不包括在内。

匿名用户

要复制根环境(名为base),可以使用以下命令;在Anaconda3-5.0上为我工作。1:

conda create --name <env_name> --clone base

您可以使用以下命令列出在conda环境中安装的所有包

conda list -n <env_name>

匿名用户

设置新环境时,我需要新环境中的基本环境中的包(通常是这样),我在提示符中使用spec文件构建相同的conda环境。txt与:

conda list --explicit > spec-file.txt

规范文件包括例如基本环境的包。

然后使用提示符将软件包安装到新环境中:

conda install --name myenv --file spec-file.txt

然后,来自base的包可以在新环境中使用。

整个过程在文档中描述:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#building-相同的康达环境