Anaconda在ZSh中找不到?

62

我通过命令行安装了Anaconda。Bash文件。

如果我在Bash中,可以打开和使用Anaconda,如Notebooks、IPython等。

如果我将我的shell更改为ZSH,则所有的Anaconda命令都会显示为“not found”。

我该如何使它在zsh中工作?

我使用的是安装有OSx Sierra的Mac。

14个回答

151

虽然我无法在Mac上进行测试(我安装了Linux Zsh),但这对你也应该适用:只需执行

/(your conda installation path)/bin/conda init zsh

然后重新启动您的zsh shell。init命令将相应更改您的~/.zshrc文件,正确设置您的PATH并略微更改PS1(这是大多数答案手动完成的...)。


22
我可以确认这个解决方案适用于MacOS。在我看来,这是最简单和最清晰的解决方案。 - Ben2209
2
这实际上是他们文档中推荐的做法(https://docs.conda.io/projects/conda/en/latest/user-guide/install/linux.html#using-with-fish-shell),只需将“fish”替换为“zsh”或您想要的shell即可。 - Bernardo Duarte
2
看起来anaconda现在会激活并显示默认环境“base”,而我想要的只是将anaconda bin添加到我的路径中。 - Moulde
2
这是目前为止最好的解决方案。 - Ryoji Kuwae Neto
3
@marz 这应该是2022年被接受的答案... - JPCF
显示剩余7条评论

50

我遇到了类似的问题。

我检查了我的.profile.bashrc.bash_profile等点文件,以寻找可以复制到我的.zshrc文件中的任何PATH信息。果然:

# added by Miniconda3 4.2.12 installer
export PATH="/Users/username/miniconda3/bin:$PATH"
在添加了这些行后,我运行了source ~/.zshrc,然后就可以启动我的jupyter笔记本服务器了。

1
作为临时解决方案,您可以通过键入 source .bashrc 来激活 bash 环境,然后通过键入 source zshrc 命令返回到 "oh my zsh" 环境。之后 conda 将正常工作。 或者您可以执行单个命令 source .bashrc && source .zshrc - chudasamachirag
在 MacOS 上,我通过将这行代码添加到我的 ~/.bash_profile 中使其正常工作,即使一开始它并不存在于该文件中。 - Joseph Farah

17

这个方法在我的 macOS 上有效

https://medium.com/@sumitmenon/how-to-get-anaconda-to-work-with-oh-my-zsh-on-mac-os-x-7c1c7247d896


用以下命令打开 .bash_profile 文件:

open ~/.bash_profile

安装程序添加了一段代码块到文件末尾。请复制它。

我的看起来像这样:

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

现在打开你的.zshrc文件:

open ~/.zshrc

将复制的代码粘贴到末尾并保存。然后运行以下命令:

source ~/.zshrc

当您在iterm2或终端上时,您应该会看到一个(base)弹出。


也适用于我。 - IsaacLevon

15

自从conda 4.4.0(于2017年12月20日发布)推荐的将conda添加到系统环境变量PATH的方式已经改变。不再使用Jonathan's answer中描述的方法,而是使用conda安装路径下etc/profile.d/文件夹中的conda.sh脚本进行操作。之后可以激活基础环境。更多关于此事的信息可以在conda changelog中找到。

我需要在我的.zshrc文件中添加以下几行:

.  ~/miniconda3/etc/profile.d/conda.sh
conda activate base

假设(mini)conda是使用默认参数安装的,即在主文件夹中安装。


10

直接从Anaconda安装文档上摘录如下:

如果您使用的是macOS Catalina,新的默认 shell 是 zsh。您需要运行以下命令:

source <path to conda>/bin/activate

然后执行:

conda init zsh

不幸的是,由于某种原因,这只在命令行安装部分中提到。如果您是通过GUI进行安装的,仍然需要执行此操作。


10

如果你在将macOS从Sierra升级到Catalina后更改了终端从bash到zsh,那么Sebastian Thees的答案需要稍作修改才能完成任务。

首先,使用以下命令切换回bash:

chsh -s /bin/bash

当你的旧conda环境都正常激活时。然后使用以下命令在zsh中激活conda:

conda init zsh

最后,使用以下命令切换回zsh:

chsh -s /bin/zsh

这种方式可以轻松追踪您的conda安装文件夹,对像我这样记性不好的人来说是一个优点。


我认为这样投票会更好,它不依赖于手动编辑init文件...在我的情况下,我直接调用/bin/bash,使用'conda init zsh',关闭/重新打开终端就完成了所有的魔法。谢谢。 - mano2a0c40
很高兴能够帮到你! - davide chiuchiu'
如果您显式地调用conda,则可以避免切换shell的问题。我尝试了~/anaconda3/bin/conda init zsh,对我有效。 - Dave X

10

在跟进@m00am的答案之后,从Anaconda 4.5.11开始,Anaconda添加到.bashrc 中的 bash 代码似乎在zsh中也能正常运行,因此将其复制到您的.zshrc中即可。在我的情况下,代码如下:

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

5

从他们的文档中(这对我有用):如果您使用的是macOS Catalina,则新的默认shell为zsh。您需要运行source <path to conda>/bin/activate,然后跟着运行conda init zsh

对于我的特定安装(通过双击安装程序完成),这最终变成了source /opt/anaconda3/bin/activate


4
这个解决方案适用于我在 macOS Mojave 上的情况。
如果你使用 Anaconda 的版本是 2019.03,你可以通过更新 .zshrc 文件来进行操作。
# Anaconda
. /anaconda3/etc/profile.d/conda.sh
conda activate base

保存文件后不要忘记运行 source ~/.zshrc

升级到Catalina后

如果您安装了新的Anaconda3 2019.07,则可以使用以下解决方案。

open ~/.bash_profile

复制以# added by Anaconda3 2019.07 installer开头,以# <<< conda init <<<结尾的行,并将其粘贴到.zshrc文件中。然后运行source ~/.zshrc命令。


这是针对Anaconda >= 4.4的正确操作方式。 - James Mertz
我得到了以下信息:toly@Tolys-MacBook-Pro-4 ~ % source ~/.zshrc 出现错误:source: 没有那个文件或目录:/Users/toly/.zshrc。我该怎么办? - Toly
你的电脑上安装了oh-my-zsh吗?https://github.com/robbyrussell/oh-my-zsh - abdullahselek
当我将Anaconda块复制到.zshrc中并运行source ~/.zshrc时,我的终端会更改为(base),因为它似乎激活了名为base的默认Anaconda环境。我所要做的就是能够通过zsh终端运行jupyter。我通过在我的.zshrc中添加"export PATH="/Users/USERNAME/opt/anaconda3/bin:$PATH""来解决这个问题。 - Moulde

1

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