更新conda后如何从终端提示中删除(base)

Hom*_*ldo 18 bash terminal anaconda conda miniconda

更新miniconda3之后,每当我打开一个终端时,它都会在我的用户名和主机前面显示“(base)”。

在此答案中,https://askubuntu.com/a/1113206/315699建议使用

conda config --set changeps1 False
Run Code Online (Sandbox Code Playgroud)

删除它。

但这将消除任何关于conda环境的迹象。我只想将其移除,以便可以始终保持活动状态,并可以访问其python和已安装的软件包,而不必始终看到此(基础)占用空间。

mer*_*erv 20

使用环境base的激活钩

对于每个环境,etc/conda/activate.d目录中的任何脚本都将在激活后执行(同样,etc/conda/deactivate.d用于激活的脚本)。如果您添加脚本来删除(base),类似于@ewindes建议,您将获得所需的行为。

我必须为base创建此目录,它只是Anaconda / Miniconda文件夹的根目录。例如,

mkdir -p miniconda3/etc/conda/activate.d
Run Code Online (Sandbox Code Playgroud)

然后在其中remove_base_ps1.sh用一行创建一个简单的文件(例如):

PS1="$(echo $PS1 | sed 's/(base) //') "
Run Code Online (Sandbox Code Playgroud)

然后启动新的外壳不会显示(base),并且从嵌套env中停用也可以处理PS1更改。


mon*_*nti 20

默认情况下,在安装 anaconda 时auto_activate_base设置为True。要检查这一点,请运行:

$ conda config --show | grep auto_activate_base
auto_activate_base: True
Run Code Online (Sandbox Code Playgroud)

设置它 False

conda config --set auto_activate_base False
Run Code Online (Sandbox Code Playgroud)

反之亦然。

请注意,如果changeps1是 keep False,它将(env)完全隐藏,如果您只想在(env)激活时显示,您可以设置changeps1True

conda config --set changeps1 True
Run Code Online (Sandbox Code Playgroud)

设置changeps1False将隐藏(env),即使env被激活,将保持藏匿(base)即使auto_activate_base设置为True

  • 这添加了什么[另一个早期答案](/sf/answers/4034977271/)中尚未包含的内容? (3认同)

Man*_*dav 16

如果您使用任何 Linux 发行版,此命令都适合您,

conda config --set auto_activate_base false
Run Code Online (Sandbox Code Playgroud)

然后

conda deactivate
Run Code Online (Sandbox Code Playgroud)


小智 8

这是因为conda的基本环境是在启动时激活的。

要将auto_activate_base参数设置为false,请键入:

conda config --set auto_activate_base false

  • **这不会使** `(base)` **前缀对基础环境隐藏,这使得基础环境*根本不激活***。shell 将使用系统 Python,而不是 Anaconda!*这根本不是OP想要的*,这会给没有经验的用户带来很多问题。如果您执行“conda activate”,则在实际加载时会出现“(base)” conda 前缀。事实上这个答案有 98+ 的赞成票,这表明它有多么有害 - 98 人认为他们解决了这个问题,但他们没有。 (10认同)
  • 这就是我一直在寻找的。 (9认同)
  • OP 中的问题是,即使 **base** 被激活,他们也不希望 PS1 发生变化。 (4认同)

小智 6

您可以在.bashrc中添加命令以从PS1中删除“(基本)”字符串:

PS1=$(echo $PS1 | sed 's/(base)//')
Run Code Online (Sandbox Code Playgroud)

  • 您的答案在`PS1` 的开头添加了一个空格,并在`$` 之后删除了一个空格,因此文本看起来像:`_rosgori@sa6:~$cd Documents/`。这一行改进了:`PS1="$(echo $PS1 | sed 's/(base) //') "`,不幸的是,当你激活另一个环境,然后停用时,`(base)` 将在那里。 (4认同)

小智 5

如果您是 macOS 用户并且最近遇到过此类问题。这是解决方案。只需打开终端然后输入..

康达停用

这个解决方案对我有用。如前所述,我用 anaconda python 尝试了一些东西。


小智 5

对我来说,有效的是:

conda config --set changeps1 false 
Run Code Online (Sandbox Code Playgroud)