我已经有一个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吗?我该如何避免呢?
答案 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