我正在尝试编写一个脚本,其名称为脚本文件,所以当我运行它时,它会自动创建一个虚拟环境并使用激活它康达。我的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 run
,conda activate
但这也没有帮助。
那么有什么想法可以让它工作吗?:)
UPDATE1:现在我使用source ./myscript.sh
,并且激活工作正常,但它会出现错误conda install
。
答案1
任何一个
- 添加
eval $(conda shell.bash hook)
到你的脚本中,或者 - 调用你的脚本来
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