Anaconda Python causing slow terminal startup/prompt

Question:

I recently installed Anconda Python on my Linux Mint 19.0 desktop. Actually, I had it installed before and everything worked great, same as with my Mint 19.0 laptop. However, I recently had to wipe my desktop and reinstall everything. Now, whenever I open the Terminal program, the prompt takes several seconds to appear. I’ve added set -x, set +x to the beginning and end of my bash profile to diagnose where the slowdown is.

The terminal load hangs on this line:

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

for a few seconds. It’s never done this before and doesn’t do it on my other computer. Any thoughts on why this is happening? It’s not a deal-breaker, but it is annoying.

Asked By: Nate

||

Answers:

I had the same problem and I solved it by recovering my old .bashrc file then I can load the bash configuration file of Anaconda whenever I need it.

To achieve this , follow these steps

  1. Rename your current .bashrc file to something like conda.bashrc by executing these commands in your terminal
cd ~
mv .bashrc conda.bashrc
mv .bashrc-anaconda3.bak .bashrc
  1. Now, you have to define a custom command in your .bashrc file so it can load Anaconda only when you need it, to do so first you need to open your .bashrc file in a text editor
gedit .bashrc
  1. Add the following lines to end of your .bashrc so it can load the other conda.bashrc file which contain anaconda package configurations
alias anaconda='source  ~/.conda.bashrc'
  1. save .bashrc with the above mentioned edits and type in your terminal window
source .bashrc
  1. now you can load anaconda by simply typing anaconda in your terminal window
anaconda
Answered By: Mohamad AlJasem

An alternative approach, which doesn’t involve removing Anaconda, is just to update to a more recent version of Anaconda. This can be done from Anaconda Navigator, and bash startup was greatly improved for me.

Answered By: dash2

try making default loading of anaconda to False.

conda config --set auto_activate_base false

this loads path for condo only when you run the command conda activate

Answered By: user13485165

In my case, caused by Conda as well.
I fixed it by commenting out part of ~/.bashrc

Remove/comment this out:

# >>> 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 <<<

Directory might be different depending on where you installed it.

Answered By: naven

I wrote a simple script that wraps commands related to conda so that conda will only be sourced when you use these commands for the first time, and there’s no need to activate conda by hand. This makes my terminal launch like 20 times faster. I use fish by the way, but I’m pretty sure that you can do the same in 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"
Answered By: Max Chuang
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.