Anaconda Python 导致终端启动/提示缓慢

问题描述 投票:0回答:5

我最近在我的 Linux Mint 19.0 桌面上安装了 Anconda Python。事实上,我之前安装过它,一切都很好,就像我的 Mint 19.0 笔记本电脑一样。但是,我最近不得不擦除桌面并重新安装所有内容。现在,每当我打开终端程序时,提示都会花费几秒钟的时间才会出现。我已将 set -x、set +x 添加到 bash 配置文件的开头和结尾,以诊断速度减慢的位置。

终端负载挂在这条线上:

/home/auerilas/anaconda3/bin/conda shell.bash hook

几秒钟。以前从未这样做过,并且在我的另一台计算机上也没有这样做。对于为什么会发生这种情况有什么想法吗?这虽然不影响交易,但很烦人。

python bash anaconda
5个回答
25
投票

尝试将 anaconda 的默认加载设置为 False。

conda config --set auto_activate_base false

仅当您运行命令时才会加载 conda 的路径

conda activate


23
投票

我遇到了同样的问题,我通过恢复旧的 .bashrc 文件解决了它,然后我可以在需要时加载 Anaconda 的 bash 配置文件。

要实现此目的,请按照以下步骤操作

  1. 通过在终端中执行这些命令,将当前的 .bashrc 文件重命名为 conda.bashrc
cd ~
mv .bashrc conda.bashrc
mv .bashrc-anaconda3.bak .bashrc
  1. 现在,您必须在 .bashrc 文件中定义自定义命令,以便仅在需要时才加载 Anaconda,为此,您首先需要在文本编辑器中打开 .bashrc 文件
gedit .bashrc
  1. 将以下行添加到 .bashrc 的末尾,以便它可以加载包含 anaconda 包配置的其他 conda.bashrc 文件
alias anaconda='source  ~/.conda.bashrc'
  1. 使用上述编辑保存 .bashrc 并在终端窗口中输入
source .bashrc
  1. 现在您只需在终端窗口中输入 anaconda 即可加载 anaconda
anaconda

2
投票

另一种方法不涉及删除 Anaconda,只是更新到更新版本的 Anaconda。这可以通过 Anaconda Navigator 完成,并且 bash 启动对我来说得到了很大的改进。


2
投票

就我而言,也是由 Conda 引起的。 我通过注释掉 ~/.bashrc 的一部分来修复它

删除/注释掉它:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
#__conda_setup="$('/mnt/hdd/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
#if [ $? -eq 0 ]; then
#    eval "$__conda_setup"
#else
#    if [ -f "/mnt/hdd/anaconda3/etc/profile.d/conda.sh" ]; then
#        . "/mnt/hdd/anaconda3/etc/profile.d/conda.sh"
#    else
#        export PATH="/mnt/hdd/anaconda3/bin:$PATH"
#    fi
#fi
#unset __conda_setup
# <<< conda initialize <<<

目录可能会有所不同,具体取决于您安装的位置。


1
投票

我写了一个简单的脚本,包装了conda相关的命令,这样只有在第一次使用这些命令时才会source conda,而不需要手动激活conda。这使得我的终端启动速度快了 20 倍。顺便说一句,我用的是 Fish,但我很确定你也可以在 bash 中做同样的事情。

function conda-init -d "initialize conda shell functions"
    if type conda | grep -q alias
        echo "initializing conda..."
        eval /Users/madmax/opt/anaconda3/bin/conda "shell.fish" hook $argv | source
    end
end

function python3 -d python3
    conda-init
    functions -e python3
    python3 $argv
end

function py -d python3
    conda-init
    functions -e py
    alias py python3
    python3 $argv
end

function ipy -d ipython
    conda-init
    functions -e ipy
    ipython $argv
    alias ipy ipython
end

alias conda "conda-init; conda"
© www.soinside.com 2019 - 2024. All rights reserved.