【发布时间】:2020-03-03 07:36:01
【问题描述】:
我使用的是 Windows 10(所有命令都以管理员身份运行)。我创建了一个名为 myenv 的环境。然后我用了
conda env 删除 -n myenv
现在,如果我尝试
conda 信息 --envs
我只看到基础环境。但是,如果我尝试
conda 激活 myenv
我仍然可以激活它!我想是因为在 envs 文件夹下,还有一个名为 myenv 的文件夹没有被删除。
如何永久删除环境?
【问题讨论】:
我使用的是 Windows 10(所有命令都以管理员身份运行)。我创建了一个名为 myenv 的环境。然后我用了
conda env 删除 -n myenv
现在,如果我尝试
conda 信息 --envs
我只看到基础环境。但是,如果我尝试
conda 激活 myenv
我仍然可以激活它!我想是因为在 envs 文件夹下,还有一个名为 myenv 的文件夹没有被删除。
如何永久删除环境?
【问题讨论】:
命令行选项只能到此为止,除非您非常具体;也许最简单的方法是手动删除内容:
"D:\Anaconda\"
envs,删除感兴趣的环境:"D:\Anaconda\envs\myenv"
你做完了吗?不完全的;即使在myenv 中,conda 有时仍会将软件包安装到 base 环境中,在"D:\Anaconda\pkgs\";因此,要清除myenv 的痕迹,
删除安装到 myenv 并以 "D:\Anaconda\pkgs\" 结尾的软件包
(如果以上还不够)Anaconda Navigator -> Environments -> myenv -> Remove
注意:第 3 步对于简单地删除 myenv 是多余的,但建议尽量减少未来的包冲突。
【讨论】:
myenv 并以“D:\Anaconda\pkgs\”结尾的软件包”哦,请不要不要这样做!那是所有环境共享的包缓存。没有人应该在那里手动做事。 conda clean 命令可以涵盖可以在该文件夹中安全完成的任何操作。在这种情况下,conda -p 将删除所有没有其他链接的包。
conda clean 无缘无故擦除 1GB+ 的包。我确实仔细挑选了单词; “最终出现” - 即不多也不少。如果你有更好的选择,我很乐意听到
pkgs,包括base。它只是一个缓存,通过(硬)链接或复制到相关的 env 文件夹(lib、bin、include 等)来安装到 env 中。唯一的例外是当用户启用软链接时(非常罕见 - 通常用于跨卷),这可能会导致 conda clean 出现问题,因为文件系统没有使用软链接对引用计数进行低级别跟踪。
conda 在您所描述的级别上的内部运作,但我确实观察到 env 与 pkgs 冲突 -例如,运行conda install keras==2.3.0 将无法获取keras_preprocessing,直到我从pkgs 手动删除它 - 这是我需要的唯一修复,conda clean 将是一个矫枉过正。这听起来准确吗?我可以根据您的 cmets 在我的答案中添加免责声明,但我想说“永远没有手册”有点太严格了
除了发布的问题中的第一个命令外,我还必须完成一个额外的步骤才能完全删除环境。我必须转到存储环境的文件夹(例如 Windows 机器上的 C:\Users*username*.conda\envs\)并删除与我删除的环境同名的文件夹。在这第二步之后,我能够重用环境名称而没有任何错误。
【讨论】: