如何在zsh中显示conda的环境(不使用oh-my-zsh)?

4

我使用 zsh,但未安装 oh-my-zsh,因为在我的机器上克隆了许多 git 存储库,而 oh-my-zsh 的默认主题或“josh”主题会使它变得非常慢,例如 cdls 命令。

因此,我删除了 oh-my-zsh 并仅使用 zsh 的默认推荐配置,除了添加一些别名和路径变量。

现在问题来了:我通过 conda 管理我的 python 环境,但提示符中没有显示当前环境名称。

我已执行以下命令:

conda init zsh

重新打开我的终端(默认 shell 是 zsh),仍然没有显示“(base)”或“(py36)”等内容。

我该如何告诉终端显示这些内容?对于我的工作来说,git 分支并不重要,但当前的 Python 版本真的很重要,因为深度学习相关工具使用许多不同版本的 Python。


在我的~/.condarc文件中,我之前没有设置changeps1: False。现在我添加了changeps1: True,但仍然无法正常工作。 - ChrisZZ
5个回答

7

对于使用oh-my-zsh的用户

我在~/.zshrc配置文件中加入了anaconda元素。

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(anaconda ...ENVS)

然后conda环境就会显示出来


3
如果您没有使用oh-my-zsh并且没有从中复制相关部分,则正确的答案是在执行conda init zsh时,会引入环境变量CONDA_PROMPT_MODIFIER。您需要将其添加到您的PROMPT中。应将其作为precmd函数的一部分进行操作,以便每次打印提示时都显示环境变量的更新值。

2
这是由于默认的zsh配置文件中的以下行引起的:

prompt adam1

删除该行后,重新打开终端,conda环境将会显示。


我在哪里可以找到这个? - Shehan
1
@Shehan 在你的zsh配置文件中找到它,通常是 ~/.zshrc - ChrisZZ
2
我没有这样的一行代码。但是,conda环境仍然没有显示。 - Shehan

0

你可以尝试,

# init your shell first
conda init zsh
source ~/.zshrc # refresh your shell
source activate base # (optional, on linux) activate base env

通过运行conda init zsh,一些初始化行将被添加到/.zshrc。然后执行source ~/.zsh,相当于重新打开一个shell。你提到的最后一步,source activate base,我没有尝试过,但也可以放在/.zshrc中。 - ChrisZZ

0

我刚刚将 changeps1: False 这行代码移到了 ~/.condarc 中,并重新启动了我的 zsh,然后突然出现了 (base)

这对我来说需要努力!


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