Anaconda 无法在Fish shell中使用conda运行源代码激活

Anaconda 无法在Fish shell中使用conda运行源代码激活,anaconda,fish,Anaconda,Fish,我照做了,但仍然没有在Ubuntu上工作 从下载conda.fish后,将其移动到anaconda3/bin/ 在~/.config/fish/config.fish末尾添加“source/home/phejimlin/anaconda3/bin/conda.fish” conda activate spark_env Traceback (most recent call last): File "/home/phejimlin/anaconda3/bin/conda", line 6, in

我照做了,但仍然没有在Ubuntu上工作

从下载conda.fish后,将其移动到anaconda3/bin/

在~/.config/fish/config.fish末尾添加“source/home/phejimlin/anaconda3/bin/conda.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

我错过了什么吗?

如果您遵循以下步骤(从开始):

从fish 2.6.0开始,conda 4.3.27:以下步骤可能会根据需要更改

更新配置 记下您的
conda
的位置

conda info --root
/Users/mstreeter/anaconda    # this is my <PATH_TO_ROOT>
更新约定 通常,您可以从
bash

source activate <environment>
source deactivate <environment>
问题
因此,执行此操作后,我无法将
fish
设置为默认shell,并使其与
conda
一起正常工作。目前,我必须首先输入默认shell,然后输入
fish
,shell将按预期工作。在我发现如何使其完全工作而无需每次登录到终端时显式选择
fish
后,我将更新此文件

从conda 4.4.0开始,不建议将conda的bin目录添加到路径

您只需添加
source/etc/fish/conf.d/conda.fish

到config.fish。

WOW!太神奇了,它起作用了!我只需将“source(conda info--root)/etc/fish/conf.d/conda.fish”添加到我的config.fish中,它就可以工作了!谢谢你,我几乎花了一整天的时间在这个环境设置上。我的答案基本上是你的答案Nehal,但似乎细节都隐藏在你的答案中,所以我写下了我在我的水平上所做的事情。我唯一的问题是,你为什么要作为root工作。;)对于这样的答案,我只需要生成一个新的容器,我通常是它们的根:)我刚刚尝试了这个,并且没有问题,我的默认外壳是鱼。在创建一个新的shell会话后,我的默认conda env被正确激活并显示。这对我来说很有效,但并不完全有效:在激活conda env后,它仍然指向我的系统python,而不是conda env的python。有什么想法可以解决这个问题吗?更新:答案完美!只需更新配置即可。由于Conda v4.6.0,您应该能够运行
Conda init
,它将为您调整
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
 source <PATH_TO_ROOT>/etc/fish/conf.d/conda.fish
source activate <environment>
source deactivate <environment>
conda activate <environment>
conda deactivate <environment>