“conda activate”在 bash.exe 上失败,即使在 git-bash.exe 上运行良好

Posted

技术标签:

【中文标题】“conda activate”在 bash.exe 上失败,即使在 git-bash.exe 上运行良好【英文标题】:"conda activate" fails on bash.exe even though works well on git-bash.exe 【发布时间】:2019-12-07 15:43:57 【问题描述】:

我想在 bash.exe 上使用“conda activate”,因为我将它设置为 VSCode 默认终端。这在 F5 调试运行时使用。

系统 - Windows 10 - Visual Studio Code 1.36.1 - 康达 4.7.10 - Git for Windows v2.22.0

环境变量由 Anaconda 安装管理器设置,python 命令适用于任何情况。但是conda activate 没有。 此命令在新的 bash.exe 中失败,并出现以下错误。

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
If using 'conda activate' from a batch script, change your
invocation to 'CALL conda.bat activate'.

To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - cmd.exe
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

conda activate 仅适用于以下情况: 1. 关于 git-bash.exe 2. 打开bash.exe,通过exec $SHELL -l重启shell,然后`conda activate'

关于 1.,为什么 git-bash.exe 和 bash.exe 之间存在这样的差异,即使它们是相同的用户和外壳(whoami,echo $SHELL)并且可能引用相同的设置文件( /.bashrc 等)?

conda activate 应该在一个新的 bash.exe 中完成。 我应该检查什么? 谢谢。

【问题讨论】:

"将您的调用更改为 'CALL conda.bat activate'":按照消息中的说明执行操作,因为它是 windows cmd shell,而不是类 unix 的 shell。 【参考方案1】:

同样的问题。首先,您必须从 bash shell 运行:

conda init bash

它将向~\.bash_profile添加一些命令,但看起来从VSCode启动终端不运行.bash_profile

只需将下面添加的命令从~\.bash_profile 移动到~\.bashrc,一切正常

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
eval "$('/c/Miniconda3/Scripts/conda.exe' 'shell.bash' 'hook')"
# <<< conda initialize <<<

【讨论】:

以上是关于“conda activate”在 bash.exe 上失败,即使在 git-bash.exe 上运行良好的主要内容,如果未能解决你的问题,请参考以下文章

conda activate base调试的时候自动激活了虚拟环境的解决

完美解决CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.

text CommandNotFoundError:您的shell未正确配置为使用'conda activate'。

“conda activate”在 bash.exe 上失败,即使在 git-bash.exe 上运行良好

CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘

CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.