conda - PATH order in fish shell

Viewed 540

I'm using miniconda on Ubuntu 20.04 with fish shell. I was able to create and activate my specific environment. My problem is with Python version which is related with $PATH.

  1. When I start clean fish shell, conda set it up for (base) environment $PATH looks like this:

PATH=/opt/conda/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/conda/bin:/snap/bin:/opt/conda/bin

it means, when I start Python it uses /opt/conda/bin/python version - conda (base) version.

  1. When I start my environment conda activate XXX it switch to XXX (more precisely, switch from base to XXX) and my $PATH looks like this:

PATH=/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/USER/.conda/envs/XXX/bin:/snap/bin:/opt/conda/bin

it means, when I start Python it uses /usr/bin/python. It is system version of Python.

  1. When I start new fish shell, deactivate (base) environment and and activate created one (XXX), $PATH looks like:

PATH=/home/USER/.conda/envs/XXX/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/conda/bin

it means, when I start Python it uses /home/USER/.conda/envs/XXX/bin/python

Problems:

  • Whenever I use XXX environment I expect to use /home/USER/.conda/envs/XXX/bin/python which is not true when I switch from (base) to (XXX). To use above python I need to deactivate base and then switch to (XXX). It seams, /home/USER/... should always be at the beginning of $PATH to choose appropriate python version.

  • I would like to not use (base) as a default when I start new shell. I'v tried config --set auto_activate_base false which add auto_activate_base: false to ./condarc but it seams to be ignored.

My conda version is 4.8.3. My ~/.config/fish/config.fish contains: eval /opt/conda/bin/conda "shell.fish" "hook" $argv | source.

What I'm do wrong? How can I correct it?

1 Answers

you can do it in one Line and don't bother yourself (MacOS and Linux)

/(your conda installation path)/bin/conda init fish

your condo installation usually in '/Users/- your UserName -/anaconda3'

if someone want to know about install fish, best way is Homebrew. after brew install fish you must add fish to supportable shells in /etc/shells. and then with chsh change default shell to fish. if it's not clear ask in comment!

Related