conda activate newenv 返回“powerline-shell:未找到命令”

conda activate newenv 返回“powerline-shell:未找到命令”

我使用 Anaconda3-2019.10-Linux-x86_64.sh 安装了 Conda。到今天为止,它运行良好。我能够运行创建新的虚拟环境并激活它,然后按预期停用它。基本上,

  • conda --version很好。
  • conda create -n newenv很好。
  • conda activate newenv也很好。

现在,在创建额外的新环境后,conda 拒绝激活它,即命令conda activate newenv返回powerline-shell:command not found并且我需要终止终端。

有什么变化?我更新了我的 conda 版本。我现在在 ubuntu 18.04.4 LTS 下运行 conda 4.8.3。我检查了 conda activate 和 conda deactivate 仅适用于 conda 4.6 及更高版本。因此应该适用于 4.8.3。

运行时,新的环境就会出现在列表中conda env list

echo $PATH其中包括:

  • /home/<user>/anaconda3/bin
  • /home/<user>/anaconda3/condabin

我可以使用 安装程序包conda install -n newenv numpy。运行良好。我可以在新环境中列出软件包。

为什么conda activate停止工作而其他 conda 命令仍然有效?我该如何修复它?

经过多次尝试,我按照以下方式修复了它:

  1. 从 .bashrc 文件中删除电力线配置

    函数 _update_ps1() { PS1=$(powerline-shell $?) }

    如果 [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; 则 PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND" fi

  2. pip install powerline-shell

  3. 在 .bashrc 中恢复 powerline-shell 的配置行

我不确定我是否完全了解问题的根源。在我看来,conda 的更新破坏了对 powerline-shell 包的依赖。从 .bashrc 配置中删除这些行让我明白问题只与 powershell 有关,而不是更深层次的 conda 或命令行问题。因此我的想法是重新安装 powershell 包。

答案1

注意-遇到同样的问题并已修复。

问题出在将 power-line shell 安装在 conda 基础环境中而不是本地目录中。因此,每次更改 conda 环境时,powerline-shell 可执行文件都不再可用。

首先确保which powerline-shell返回/home/$USER/.local/bin/powerline-shell,其中 $USER 是您的用户目录。如果没有,请删除 powerline-shell。如果有配置文件,请确保复制它。

现在,使用 安装 powerline-shell pip3 install --user power-line-shell。确保您已先停用 conda 环境(base环境也是如此)。

最后,添加export PATH="$PATH:/home/$USER/.local/bin/"你的 bashrc。

相关内容