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

Cannot run source activate with conda in Fish-shell

我关注 conda_PR_545, conda issues 4221 但仍未在 Ubuntu 上工作。

here 下载 conda.fish 后,将其 mv 到 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

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

我是不是漏掉了什么?

如果按照https://github.com/conda/conda/issues/2611,步骤是(从头开始):

[root@6903a8d80f9b ~]# fish
root@6903a8d80f9b ~# echo $FISH_VERSION 
2.4.0
root@6903a8d80f9b ~# bash Miniconda2-4.3.11-Linux-x86_64.sh -b -p /conda
root@6903a8d80f9b ~# source /conda/etc/fish/conf.d/conda.fish
root@6903a8d80f9b ~# conda activate root
root@6903a8d80f9b ~# conda create -yn fishtest                              (root) 
Fetching package metadata .........
Solving package specifications: 
Package plan for installation in environment /conda/envs/fishtest:

#
# To activate this environment, use:
# > source activate fishtest
#
# To deactivate this environment, use:
# > source deactivate fishtest
#

root@6903a8d80f9b ~# conda activate fishtest                                (root) 
root@6903a8d80f9b ~#                                                    (fishtest) 
root@6903a8d80f9b ~# conda deactivate fishtest                          (fishtest) 

自 fish 2.6.0 conda 4.3.27 起:以下步骤可能会更改为 issue is addressed

更新配置

记下您的 conda 的位置

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

添加行到 ~/.config/fish/config.fish

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

更新约定

通常您会 运行 来自 bash

的以下内容
source activate <environment>
source deactivate <environment>

现在您必须 运行 来自 fish

的以下内容
conda activate <environment>
conda deactivate <environment>

问题

所以在这样做之后我无法将 fish 设置为我的默认值 shell 并且它仍然可以与 conda 一起正常工作。目前,我必须首先输入我的默认值 shell,然后输入 fish,然后 shell 会按预期工作。在我发现如何让它完全工作而无需在每次登录我的终端时都明确选择 fish

后,我将更新此内容

从 conda 4.4.0 开始,不推荐将 conda 的 bin 目录添加到 PATH https://github.com/conda/conda/blob/master/CHANGELOG.md#440-2017-12-20

您只需添加 source <path-to-anaconda>/etc/fish/conf.d/conda.fish 至 config.fish.