Cannot run source activate with conda in Fish-shell

Jim picture Jim · Mar 18, 2017 · Viewed 17.9k times · Source

I follow conda_PR_545, conda issues 4221 and still not working on Ubuntu.

After downloading conda.fish from here, and mv it to anaconda3/bin/.

Add "source /home/phejimlin/anaconda3/bin/conda.fish" at the end of ~/.config/fish/config.fish.

conda activate spark_env
Traceback (most recent call last):
File "/home/phejimlin/anaconda3/bin/conda", line 6, in 
sys.exit(conda.cli.main())
File "/home/phejimlin/anaconda3/lib/python3.6/site-packages/conda/cli/main.py", line 161, in main
raise CommandNotFoundError(argv1, message)
TypeError: init() takes 2 positional arguments but 3 were given

or

activate spark_env
Error: activate must be sourced. Run 'source activate envname'
instead of 'activate envname'.

Do I miss something?

Answer

Marc picture Marc · Oct 21, 2017

As of fish 2.6.0 conda 4.3.27: the following steps may change as issue is addressed

update config

Take note of your conda's location

conda info --root
/Users/mstreeter/anaconda    # this is my <PATH_TO_ROOT>

Add line to ~/.config/fish/config.fish

 source <PATH_TO_ROOT>/etc/fish/conf.d/conda.fish

update convention

Typically you'd run the following from bash

source activate <environment>
source deactivate <environment>

Now you must run the following from fish

conda activate <environment>
conda deactivate <environment>

issues

so after doing this I'm not able to set fish as my default shell and have it still work properly with conda. Currently, I must first enter my default shell, and enter fish and the shell works as expected. I'll update this after I find out how to get it working completely without the need to explicitly choose fish each time I log into my terminal