【问题标题】:Conda - unable to completely delete environmentConda - 无法完全删除环境
【发布时间】:2020-03-03 07:36:01
【问题描述】:

我使用的是 Windows 10(所有命令都以管理员身份运行)。我创建了一个名为 myenv 的环境。然后我用了

conda env 删除 -n myenv

现在,如果我尝试

conda 信息 --envs

我只看到基础环境。但是,如果我尝试

conda 激活 myenv

我仍然可以激活它!我想是因为在 envs 文件夹下,还有一个名为 myenv 的文件夹没有被删除。

如何永久删除环境?

【问题讨论】:

    标签: python conda


    【解决方案1】:

    命令行选项只能到此为止,除非您非常具体;也许最简单的方法是手动删除内容:

    1. 找到 Anaconda 文件夹;我将使用"D:\Anaconda\"
    2. envs,删除感兴趣的环境:"D:\Anaconda\envs\myenv"

    你做完了吗?不完全的;即使在myenv 中,conda 有时仍会将软件包安装到 base 环境中,在"D:\Anaconda\pkgs\";因此,要清除myenv 的痕迹,

    1. 删除安装到 myenv 并以 "D:\Anaconda\pkgs\" 结尾的软件包

    2. (如果以上还不够)Anaconda Navigator -> Environments -> myenv -> Remove

    3. (如果以上还不够)可能已损坏的 Anaconda;记下已安装的软件包,完全卸载 Anaconda,重新安装。

    注意:第 3 步对于简单地删除 myenv 是多余的,但建议尽量减少未来的包冲突。

    【讨论】:

    • "删除安装到myenv 并以“D:\Anaconda\pkgs\”结尾的软件包”哦,请不要不要这样做!那是所有环境共享的包缓存。没有人应该在那里手动做事。 conda clean 命令可以涵盖可以在该文件夹中安全完成的任何操作。在这种情况下,conda -p 将删除所有没有其他链接的包。
    • @merv 这是唯一对我有用的方法,可以清除冲突的 TF1 与 TF2 版本,以及 Keras 2.2.5 和 2.3.0,而无需重新安装整个 Anaconda - 我遇到了实例conda clean 无缘无故擦除 1GB+ 的包。我确实仔细挑选了单词; “最终出现” - 即不多也不少。如果你有更好的选择,我很乐意听到
    • 我对这个声明的问题是,Conda 根本无法以与解释一致的方式工作。具体来说,没有环境直接引用pkgs,包括base。它只是一个缓存,通过(硬)链接或复制到相关的 env 文件夹(libbininclude 等)来安装到 env 中。唯一的例外是当用户启用软链接时(非常罕见 - 通常用于跨卷),这可能会导致 conda clean 出现问题,因为文件系统没有使用软链接对引用计数进行低级别跟踪。
    • @merv 确实,我不知道conda 在您所描述的级别上的内部运作,但我确实观察到 env 与 pkgs 冲突 -例如,运行conda install keras==2.3.0 将无法获取keras_preprocessing,直到我从pkgs 手动删除它 - 这是我需要的唯一修复,conda clean 将是一个矫枉过正。这听起来准确吗?我可以根据您的 cmets 在我的答案中添加免责声明,但我想说“永远没有手册”有点太严格了
    【解决方案2】:

    除了发布的问题中的第一个命令外,我还必须完成一个额外的步骤才能完全删除环境。我必须转到存储环境的文件夹(例如 Windows 机器上的 C:\Users*username*.conda\envs\)并删除与我删除的环境同名的文件夹。在这第二步之后,我能够重用环境名称而没有任何错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-05
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多