为什么打开终端时会调用conda?

8

我正在使用Kubuntu,并已安装了anaconda。当我打开Konsole(终端)时,会稍微停顿一下,然后才能得到命令行。这个小小的停顿是由运行中的conda进程引起的(查看top命令的输出)。我安装了最新版本的anaconda,然后使用了一个3.6的python环境。

conda install python=3.6

我使用的是tensorflow,它暂时还不支持3.7版本。

之前我曾经使用过较旧版本的anaconda来获取3.6版本,但没有出现过这个问题。这一次,我尝试按照上面所示的推荐方式进行安装。

为什么终端启动时会运行conda,它在做什么,如何停止它?

编辑:我的bashrc文件中添加了什么内容。

# added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/alex/anaconda3/bin/conda' shell.bash hook 2> /dev/null)" if [
$? -eq 0 ]; then
    \eval "$__conda_setup" else
if [ -f "/home/alex/anaconda3/etc/profile.d/conda.sh" ]; then
    . "/home/alex/anaconda3/etc/profile.d/conda.sh"
    CONDA_CHANGEPS1=false conda activate base
else
    \export PATH="/home/alex/anaconda3/bin:$PATH"
    fi 
fi 
unset __conda_setup
# <<< conda init <<<

我在那里没有看到任何被称为每次打开终端时都会发生的东西。


2
请检查您的~/.bashrc文件中与conda相关的行。 - Chris_Rands
谢谢您的回复。我所做的只是打开一个命令窗口。为什么会调用conda?如果我在终端窗口中使用conda或python,那么我理解它会被调用。 - user728785
2
你应该将这些行添加到你的问题上,但是我的猜测是,如果你尝试在.bashrc中将这些行哈希化(在行首添加一个'#'来忽略它们),然后尝试打开一个新的终端,它可能会按照你想要的方式工作。 - Chris_Rands
2
关于“我没有看到任何东西被称为每次打开终端时都会运行的内容”……bashrc文件在每次打开终端时都会运行,因为该文件的工作是为您的使用准备shell/env。因此,如果在其中添加脚本可能会减慢终端实例的初始化,这应该不会让人感到惊讶。 - meissner_
1
@meissner。这很有道理。我以为bashrc文件只在登录或调用文件时才被调用。 - user728785
显示剩余3条评论
2个回答

24

这可以通过输入以下内容来解决:

$ conda config --set auto_activate_base false

另一种方法是打开您的~/.condarc文件并自行操作。

$ open ~/.condarc

auto_activate_base: true替换为auto_activate_base: false
如果未找到,请添加此行:auto_activate_base: false

您可以通过键入以下内容来撤消此操作: $ conda config --set auto_activate_base true


1
感谢您的答复,希望其他人也会发现它很有用。由于这个问题,我停止使用Anaconda,现在更喜欢自己设置环境。 - user728785
3
伙计,conda真让人烦恼。它就像Python世界里的苹果公司一样。一旦你安装了它,它就试图占有你。 - medley56

4

只需运行:

conda config --set changeps1 False

您也可以编辑您的~/.bashrc文件。

vi ~/.bashrc

2
谢谢!这解决了我很多问题。每次打开终端时,Anaconda都在运行。现在不会了,即使我激活Anaconda,也不会出现烦人的(base)前缀。 - Eric Wiener

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接