沉默的Conda Shell警告

时间:2019-09-21 19:53:17

标签: python bash conda

当我在Bash脚本中激活Conda环境时,例如:

#!/bin/bash
conda activate ./myenv
which python
python do_stuff.py

激活行将打印出长警告:

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - 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 init bash命令,这将导致Conda默认为所有Bash shell激活我的环境,这绝对不是我想要的。这是Conda的默认配置,在它破坏了系统中所有功能之后,我明确将其关闭。我希望Conda的功能类似于virtualenv,在那里我有一个包含环境的文件夹,并且仅在特定应用程序需要时才激活它。在任何情况下,我都不想为在系统上任何地方运行的每个Bash实例激活一个Conda环境。

我不确定为什么会给我CommandNotFoundError,因为否则Conda会使用指向Python和其他特定于环境的资源的正确路径来填充我的Bash shell,并且其他所有东西都将正常工作。

2 个答案:

答案 0 :(得分:2)

在脚本中添加以下代码。

eval "$(command conda 'shell.bash' 'hook' 2> /dev/null)"

这仅在脚本中初始化conda。

答案 1 :(得分:0)

默认情况下,一旦初始化conda,它将在您打开的每个新Shell会话上自动激活基本环境。如果您想关闭此行为,只需运行一次:

conda config --set auto_activate_base false