conda init doesn't work in bash on Windows

Viewed 5218

I install Git-Bash and conda on my Windows, which provides two program: C:\Program Files\Git\git-bash.exe and C:\\Program Files\\Git\\bin\\bash.exe.

The latter, C:\\Program Files\\Git\\bin\\bash.exe, does not work with conda properly. When I try to conda acitvate base, I get a message:

Administrator@##### MINGW64 /bin
$ conda --version
conda 4.7.12

Administrator@##### MINGW64 /bin
$ conda activate base

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
If using 'conda activate' from a batch script, change your
invocation to 'CALL conda.bat activate'.

To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - cmd.exe
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

I tried conda init and conda init bash, then close and re-open the bash.exe, but it just remains the same.

Any idea on how to fix the problem?

Possible work around:

I am concerned with this issue because VSCode's Integrated Terminal uses it. I tried to use C:\Program Files\Git\git-bash.exe as Integrated Terminal, but it opens a new window, instead of 'Integrated' in VSCode.

The git-base.exe works fine with conda, so guides on how to setup git-base.exe as VSCode Integrated Terminal is also acceptable.

Any help would be appreciated.

3 Answers

For me there were two problems:

  1. conda init creates a .bash_profile file with the correct initialisation, but git-bash.exe loads .bashrc (thanks to Auss' comment)
  2. My bash home directory was not equal to my windows home directory. Conda created C:\Users\<username>\.bash_profile and bash needs ~/.bashrc, but ~/ was not equal to C:\Users\<username>\.

My solution was to

  • run code ~/.bashrc from the git terminal in VS Code to make sure the .bashrc is created in the right location
  • copy the contents of C:\Users\<username>\.bash_profile and paste into the opened .bashrc
  • Reopen the Git terminal

Append the configuration in .bash_profile to the .bashrc file

conda init bash
cat ~/.bash_profile >> ~/.bashrc 

conda activate $ENVNAME should work after a bash restart.

Adding this line to .bash_profile solved it:

. /c/Anaconda3/etc/profile.d/conda.sh

(See answer to this related question for more information)

Related