如何解决停用所有 conda 环境
当一个 conda 环境被激活时,conda 会记住之前激活的环境。例如,如果没有环境被激活,调用 conda activate foo
然后调用 conda deactivate
导致没有环境处于活动状态。但是,调用 conda activate foo
,然后是 conda activate bar
,然后是 conda deactivate
会导致“foo”环境处于活动状态。 Conda 将每个环境在激活时放在一个堆栈上,而取消激活只会从堆栈中弹出一个项目。
在使用 bash 版本的 conda 时,如何停用所有 conda 环境?
例如,如果我有一个重建环境的脚本,它需要确保该环境当前未处于活动状态,因此它应该停用所有环境。我可以在脚本的顶部放置十个左右的 conda deactivate
,这可能就足够了,但我正在寻找不那么笨拙的东西。
解决方法
我不知道是否存在任何直接路由,conda deactivate
没有任何记录的命令行参数,并且 conda --help
在我的系统上报告的其他命令可能对此有所帮助。
对您来说,在 bash
中的一种方法可能是滥用 conda 将 CONDA_PREFIX
设置为当前活动环境的路径这一事实。因此,您可以停用,直到不再设置该变量:
while [ ! -z $CONDA_PREFIX ]; do conda deactivate; done
,
conda 环境堆栈的深度存储在环境变量 CONDA_SHLVL
中。多次运行 conda deactivate
应该会停用所有环境。
for i in $(seq ${CONDA_SHLVL}); do
conda deactivate
done
,
conda 环境的激活意味着您激活的环境是应用程序使用的环境。因此,您在 conda 中始终有一个活动环境(当您停用时,另一个环境会被激活)。
一个可能的选项是激活 conda base(默认)环境,例如 conda activate base
(或您希望明确激活的任何其他环境)。您也可以删除不需要的环境。
这是一篇关于这个主题的好帖子:https://towardsdatascience.com/manage-your-python-virtual-environment-with-conda-a0d2934d5195
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。