conda activate 在 bash 文件中不起作用

conda activate 在 bash 文件中不起作用

我正在尝试编写一个脚本,其名称为脚本文件,所以当我运行它时,它会自动创建一个虚拟环境并使用激活它康达。我的conda版本是4.7.1。

这是我在开始时脚本文件

#!/bin/bash
conda create --name myenv1
conda activate myenv1

创建环境没有问题,但是我收到错误:

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 activate myenv1如果我直接在终端中运行,就不会出现此错误。

到目前为止,我采取了一些措施,例如使用,conda init <SHELL_NAME>但没有任何帮助。然后我在 bashrc 中添加了以下内容

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/<user>/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/<user>/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/<user>/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/<user>/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

这也不起作用。接下来,根据此链接将 PATH 行中的路径更改为:

. /opt/conda/etc/profile.d/conda.sh
conda activate base

这个是为 conda 4.4 编写的,但我希望能对我有所帮助。

然后我尝试了conda runconda activate但这也没有帮助。

那么有什么想法可以让它工作吗?:)

UPDATE1:现在我使用source ./myscript.sh,并且激活工作正常,但它会出现错误conda install

答案1

任何一个

  1. 添加eval $(conda shell.bash hook)到你的脚本中,或者
  2. 调用你的脚本来bash -i调用你的交互式环境

答案2

在此给出的另一个答案问题对我有用的解决此错误信息的方法是:

source activate base

因此,完整的例子可能是:

#!/bin/bash
conda create --name myenv1
source activate base 
conda activate myenv1

答案3

Ubuntu Focal,这是唯一对我有用的方法。

假设您的环境安装在~/miniconda3目录中。

source ~/miniconda3/etc/profile.d/conda.sh
conda activate myenv

答案4

我有同样的问题,但是这个有效:在终端类型中:

$ bash
$ conda init
$ cd /path_that_include_env_dir
$ conda activate ./<env_name>

或者

$ conda activate /env_path

“env_path” 是完整的环境路径:/home/usr/env_dir

检查环境列表及其路径

$ conda env list

相关内容