当我在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,并且其他所有东西都将正常工作。
答案 0 :(得分:2)
在脚本中添加以下代码。
eval "$(command conda 'shell.bash' 'hook' 2> /dev/null)"
这仅在脚本中初始化conda。
答案 1 :(得分:0)
默认情况下,一旦初始化conda
,它将在您打开的每个新Shell会话上自动激活基本环境。如果您想关闭此行为,只需运行一次:
conda config --set auto_activate_base false