在命令行直接输入conda activate my_env可以直接进入该环境。但如果将该命令放到bash脚本中,再运行该脚本时会提示错误:

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

To initialize your shell, run

$ conda init

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'.

这是因为bash未正确配置conda启动项。尝试了github的issues#7980Can't execute conda activate from bash script #7980讨论中的诸多解决方案,发现stuarteberg的方案最为可行:

echo "export -f conda" >> ~/.bashrc

echo "export -f __conda_activate" >> ~/.bashrc

echo "export -f __conda_reactivate" >> ~/.bashrc

echo "export -f __conda_hashr" >> ~/.bashrc

但是再次运行时又提示了新的错误:

main: line 5: __conda_exe: command not found

还是bashrc没配置好。

参考stackoverflow的讨论贴Conda 4.10.3 and Snakemake >5 "__conda_exe" problem需要再添加两行:

echo "export -f __add_sys_prefix_to_path" >> ~/.bashrc

echo "export -f __conda_exe" >> ~/.bashrc

这样就没问题了,直接在scripts中输入conda activate my_env并运行该script时可以获得和在命令行直接输入该命令一样的效果。

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: