在Catalina上将Anaconda与zsh一起使用

时间:2019-12-28 11:33:01

标签: bash shell zsh macos-catalina

Anaconda安装程序最初将此脚本添加到了我的.bashrc.bash_profile中,因此当我切换到.zshrc时,我将其复制到了zsh中。我最近读到我不需要/应该复制它,因为它是为.bash_profile设计的,但是现在macOS仍在使用zsh,我想知道我在做什么。应该做。显然,我需要告诉zsh Anaconda在哪里,但是我需要那个脚本还是可以像export PATH=/Users/ty604/anaconda3/bin:$PATH那样导出Anaconda路径?

Anaconda安装程序添加的脚本。

export PATH=/Users/ty604/anaconda3/bin:$PATH

# added by Anaconda3 2019.03 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/ty604/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/Users/ty604/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/ty604/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export PATH="/Users/ty604/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

由于各种shell文件中的重复导出命令,我在$ PATH中也有很多重复的路径。
$ echo $ PATH
/Users/ty604/anaconda3/bin:/Users/ty604/anaconda3/condabin:/Users/ty604/anaconda3/bin:/Users/ty604/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:/Users/ty604/flutter/bin

我系统中的文件
.bash_history, .bash_profile, .bashrc, .profile, .zprofile, .zsh_history, .zshrc, .zshrc.pre-oh-my-zsh

系统中的文件夹
.bash_sessions, .oh-my-zsh, .zsh

macOS将继续使用zsh,我们可以将zsh设置为Catalina中的默认外壳,这已经完成了。使用Catalina可以删除bashoh-my-zsh的所有痕迹,因为zsh现在是默认外壳程序了吗?另外我正在使用Hyper Terminal,这意味着我不再需要oh-my-zsh了吗?

2 个答案:

答案 0 :(得分:1)

如果您使用zsh作为外壳程序(这取决于您,因为Catalina仍然提供bash),并且需要一些设置,则它们应该分别进入.zshrc,{ {1}}。当然,您不会盲目地从.zprofile复制所有内容,因为您需要确保代码在Zsh下也有效。但是,您发布的代码段对我来说看起来很安全,即它应该在bash和zsh下都可以工作。

在这种情况下,我建议(为了简化维护)将bash和zsh通用的初始化代码放在单独的文件中,例如.bashrc,并在~/.commonrc和{{1} }。还请注意,.zshrc仅在它是交互式外壳程序时才被读取。请参见 zshall 手册页中的启动/关闭文件部分。

答案 1 :(得分:0)

通过Anaconda开发人员帖子发现她正在使用

conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/user_name/anaconda3/bin/conda' shell.zsh hook 2> /dev/null)"

在其他任何地方都找不到shell.zsh hook,因此希望对其他人有所帮助。

由于默认的macOS zsh shell现在是zsh,因此我正在将所有bash文件移出系统。