为什么VS Code在Fish Shell中同时调用source miniconda3/bin/activate和conda activate两个命令?

6
当我使用自动环境激活在VS Code中打开终端时,会发生以下情况:
Welcome to fish, the friendly interactive shell
luka@Lukas-MBP ~/D/e/p/collatz-conjecture> source /Users/luka/miniconda3/bin/activate                                                                                    (base) 
~/miniconda3/bin/activate (line 5): 'return' outside of function definition
\. "$_CONDA_ROOT/etc/profile.d/conda.sh" || return $?
                                            ^
from sourcing file ~/miniconda3/bin/activate
        called on standard input

source: Error while reading file '/Users/luka/miniconda3/bin/activate'
luka@Lukas-MBP ~/D/e/p/collatz-conjecture> conda activate base                                                                                                           (base) 

如何防止VS Code调用两个命令,只使用conda activate base,同时仍然使用自动环境激活功能。

1个回答

1

我假设你使用的是4.6版本之前的conda,其中可能没有fish支持。请升级到4.6或更高版本,使用conda init设置你的shell配置文件,这应该可以解决问题。


那个错误提示应该使用 . 而不是 source,这是错误的。Fish 为了兼容性而提供了一个 . 函数,但 source 是内置的。最好的情况是它会执行完全相同的操作。所以那不可能是问题所在。 - faho
1
@faho,你说得对,这是因为当我们添加对conda的支持时,fish没有得到适当的支持,所以我们采用了conda 4.5的“旧”方式来源化conda.sh文件,这种方式只适用于bash。我已经更新了我的回复。 - Brett Cannon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接