【问题标题】:Removing Conda environment删除 Conda 环境
【发布时间】:2018-03-06 09:49:50
【问题描述】:

我想删除使用 conda 创建的某个环境。我怎样才能做到这一点?假设我有一个活跃的 testenv 环境。我尝试关注documentation

$ conda env remove

CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again

然后我将其停用:

$ source deactivate

我尝试再次运行命令以将其删除,但仍然出现相同的错误。这里出了什么问题?

【问题讨论】:

  • 确保您以管理员身份运行终端,否则命令将成功运行而不会引发任何错误,但不会删除 env。
  • 你试过了吗:conda env remove -n ENV_NAME

标签: python jupyter conda


【解决方案1】:

您可能没有完全停用 Conda 环境 - 请记住,您需要与 Conda 一起使用的命令是 conda deactivate(对于旧版本,请使用 source deactivate)。因此,在尝试之前启动一个新的 shell 并在其中激活环境可能是明智的。然后停用它。

你可以使用命令

conda env remove -n ENV_NAME

删除具有该名称的环境。 (--name 等价于-n

请注意,您还可以在创建和删除环境时使用-p /path/to/env 而不是-n ENV_NAME 将环境放置在您想要的任何位置,如果您愿意的话。他们没有必须住在您的 conda 安装中。

更新,2019 年 1 月 30 日:从 Conda 4.6 开始,conda activate 命令成为在所有平台上激活环境的新官方方式。 this Anaconda blog post

中描述了这些更改

【讨论】:

  • 你是对的,我写这篇文章的时候错了。我的意思是source deactivate。谢谢
  • 其实你也可以使用conda deactivate,它也是一样的。至少在 4.4.11 版本中
  • 谢谢。但不仅仅是 deactivate 本身,对吧?
  • 如果删除环境留下任何东西,我想 Anaconda 团队会很感激错误报告。
  • 如果你创建一个前缀它也会起作用: conda env remove -p >
【解决方案2】:

确保您的环境未处于活动状态后,键入:

$ conda env remove --name ENVIRONMENT

【讨论】:

  • 这是我需要的信息。如果conda env --help 给了它会很好。
  • EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENVIRONMENT
  • 我提交了一个关于更新帮助文本失败的错误,它被标记为对初学者来说很容易的问题,所以有修复的希望。
  • 很难相信我们需要来这里获取这些基本信息。当“删除环境”用作搜索词时,conda 网站不返回任何信息。
【解决方案3】:

Official documentation 对我有用:

conda remove --name myenv --all

或者只是conda env remove --name myenv

要验证环境是否已删除,请在终端窗口或 Anaconda Prompt 中运行:

conda info --envs

显示的环境列表不应显示已删除的环境。

您的 anaconda3 环境文件夹可能会在您的 anaconda3 安装文件夹中列出已删除环境的空文件夹,例如:

/opt/anaconda3/envs

【讨论】:

  • 这应该是公认的答案。
【解决方案4】:

在我的 Windows 10 企业版操作系统中,此代码运行良好: (假设环境即testenv)

conda env remove --name testenv

【讨论】:

    【解决方案5】:

    如果你在基地

    (base) HP-Compaq-Elite-8300-CMT:~$ 
    

    通过以下方式删除 env_name

    conda env remove -n env_name
    
    

    如果您已经在 env_name 环境中:

    (env_name) HP-Compaq-Elite-8300-CMT:~$ 
    

    停用然后删除:

    conda deactivate
    conda env remove -n env_name
    

    【讨论】:

    • conda deactivate 不接受参数,只是 conda deactivate。
    【解决方案6】:

    使用--prefix-p 标志创建的环境必须使用-p 标志删除(不是 -n)。

    例如: conda remove -p </filepath/myenvironment> --all,其中</filepath/myenvironment> 替换为环境的完整或相对路径。

    【讨论】:

    • 我的环境名称包含一个空格,例如 my env。这种方法,conda env remove -p path/to/my\ env 有效,而 conda env remove -n my\ envconda env remove -n "my env" 无效。
    【解决方案7】:

    总共有 3 种方法可以实现这一目标。假设您有一个名为 myenv 的环境,

    1. conda env remove --name myenv-n--name 的快捷方式。

    2. conda remove --name myenv --all.

    3. 直接删除env文件夹。 (不推荐)

      # list environments and their locations
      conda env list
      # or
      # conda info --envs
      
      # delete the folder listed
      rm -rf /Users/username/.local/share/conda/envs/myenv
      

    如果您想删除环境没有提示让您再次检查。使用-y--yes 的快捷方式。 (全球使用请查看silent prompt in conda

    conda env remove -n myenv -y
    conda remove -n myenv --all -y
    

    参考文献

    • conda env --help
    • conda remove --help

    【讨论】:

    • 为什么不建议直接删除env文件夹呢?可能出了什么问题?
    • @NoName Conda 为包提供了一个在包删除之前触发的可挂钩预取消链接事件。直接删除会跳过这个。 AFAICT,它很少使用并且主要管理环境内部的东西(例如,Jupyter extension 将通过此类钩子在 Jupyter 实例中注销自身),因此删除所有内容不应该破坏东西。但是,searching turns up some packages(例如,与 FSL 相关的包)似乎在外部注册,在这种情况下手动删除可能会留下悬空引用。
    【解决方案8】:

    您可以尝试以下操作:打开 anaconda 命令提示符并输入

    conda remove --name myenv --all
    

    这将删除整个环境。

    延伸阅读:docs.conda.io > Manage Environments

    【讨论】:

      【解决方案9】:

      移除完整的 conda 环境:

      conda remove --name YOUR_CONDA_ENV_NAME --all

      【讨论】:

        【解决方案10】:

        我的环境名称是:test

        conda remove -n test --all
        

        【讨论】:

          【解决方案11】:

          首先,您必须先停用您的环境,然后再将其删除。您可以使用以下命令删除 conda 环境

          假设您的环境名称是 "sample_env" ,您可以使用删除此环境

          source deactivate    
          conda remove -n sample_env --all
          

          '--all' 将用于删除所有依赖项

          【讨论】:

            【解决方案12】:

            在删除之前使用source deactivate停用环境,将ENV_NAME替换为您要删除的环境:

            source deactivate
            conda env remove -n ENV_NAME
            

            【讨论】:

            • 解释,代码的作用以及它如何解决问题中的问题,很少不能改善答案。
            • EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENV_NAME
            【解决方案13】:

            首先停用环境并返回基本环境。从基础上,您应该能够运行命令conda env remove -n <envname>。这会给你消息

            Remove all packages in environment C:\Users\<username>\AppData\Local\Continuum\anaconda3\envs\{envname}:

            【讨论】:

              【解决方案14】:

              这对我有用:

              conda env remove --name tensorflow
              

              【讨论】:

              • 也为我工作。 conda env remove --name &lt;name of your environment&gt; 稍后您可以从 Anaconda 或 miniconda 安装位置删除环境文件夹 Anaconda\envs\&lt;name of your environment&gt;Miniconda\envs\&lt;name of your environment&gt;
              【解决方案15】:

              如果您不熟悉命令行,可以使用 anaconda 仪表板将其删除

              【讨论】:

                【解决方案16】:

                因为只能停用活动环境,所以 conda deactivate 不需要也不接受参数。这里的错误信息非常明确。

                只需调用 conda deactivate https://github.com/conda/conda/issues/7296#issuecomment-389504269

                【讨论】:

                  【解决方案17】:

                  查看 Anaconda 或 miniconda 中的环境:

                  conda env list
                  

                  如果您使用名称创建了环境,则使用:

                  conda remove -n envname --all
                  
                  

                  如果您使用前缀创建了环境,则使用:

                  conda remove -p [path] --all
                  

                  用您的环境名称更改envname,如果有前缀,请提供环境的完整path,例如:C:/Users/techv/Desktop/project/env
                  --all 会移除目标环境的所有依赖。

                  我希望这个答案会有所帮助。

                  【讨论】:

                    【解决方案18】:

                    在终端上显示

                    (base) [root@localhost ~]#

                    只需点击命令:conda deactivate

                    你已经退出 conda env 了,现在你的提示看起来像

                    [root@localhost ~]#

                    【讨论】:

                    • 答案没有提供任何新的见解。已经提到以 root 身份运行此命令。
                    猜你喜欢
                    • 2022-08-05
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-06-13
                    • 2020-03-03
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-08-10
                    • 2021-06-13
                    相关资源
                    最近更新 更多