I'm trying to modify my $PATH variable in conda by using activate.d and deactivate.d like:
In activate.d:
export OLD_PATH = $PATH
export PATH= "/path/to/something:$PATH"
In deactivate.d:
export PATH = $OLD_PATH
unset OLD_PATH
In base environment, echo $PATH outputs:
(base) $ echo $PATH
/home/myname/anaconda3/bin:/home/myname/anaconda3/condabin:/home/myname/bin:/home/myname/.local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/cuda-8.0/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin
Then I activate my environment by:
(base) $ conda activate myproject
In the myproject environment, echo $PATH outputs:
(myproject) $ echo $PATH
/path/to/something:/home/myname/anaconda3/envs/myproject/bin:/home/myname/anaconda3/condabin:/home/myname/bin:/home/myname/.local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/cuda-8.0/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin
Which is exactly what I expect. However, when I try to back to the base environment by using
(myproject) $ conda deactivate
What I expect is echo $PATH will output the same thing as it used to do in the base environment. However, what I get is:
(base) $ echo $PATH
/home/myname/anaconda3/envs/myproject/bin:/home/myname/anaconda3/condabin:/home/myname/bin:/home/myname/.local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/cuda-8.0/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin
Notice that the first path is /home/myname/anaconda3/envs/myproject/bin instead of /home/myname/anaconda3/bin.
What's going on there?