如何在退出的conda环境中添加/删除/更新软件包

时间:2020-04-23 00:08:34

标签: python anaconda conda

我已经有一个conda环境设置。

我想从中删除一些软件包,更新一些并添加一些新软件包。

目前,我是source activate <my_exiting_conda>.之后一个接一个地手动完成

conda update x
conda update y
conda remove z --force
conda remove w --force
conda install -c <channel> <package name>

有什么方法可以将所有这些命令放在一个文件中,然后使用它一次完成所有工作。

另外,当我手动运行上述命令时,它要求为每个命令命中Y / n吗?我该如何避免呢?

2 个答案:

答案 0 :(得分:0)

请考虑使用switching to using YAMLs来管理您的环境并避免使用conda update/install/remove命令。如果要对环境进行多次更改,请在YAML中进行更改,然后使用:

conda env update -f environment.yaml

此命令还具有可选参数--prune,它将删除所有不需要的软件包,即提供您要查找的软件包删除机制。

请注意,conda env命令不提供事务审查步骤。因此,我不建议使用它来管理 base 环境。

从现有环境开始

要从现有环境中获取有效的YAML(例如 foo ),请尝试运行类似的

conda env export -n foo --from-history > foo.yaml

--from-history参数将仅包含您提供给环境的明确规范,因此YAML看起来将更接近于可能从头开始制作和维护的内容。

请注意,如果有通过pip安装的软件包,它们将不会出现在--from-history版本中。在那种情况下,我仍将从该版本开始,然后导出完整的YAML以捕获任何pip规范,并将其添加到更简单的版本中。

答案 1 :(得分:0)

是的,您可以一次性通过包裹

conda update x y
conda remove z w --force