虚拟环境是运行python的好方法。大部分时候我们只需配备不同的虚拟环境以满足python代码中需要的不同包。除python之外,气象相关研究中常常使用cdo、nco等工具,也可以在虚拟环境中轻松配置。
然而,当我们需要通过作业提交系统提交作业运行上述代码或相关命令时,就需要在提交脚本中配置激活虚拟环境的语言。
以PBS作业提交系统为例,其语法可以为csh或bash。需要激活虚拟环境时,在脚本中增加:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/public/home/xxx/0.library/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/public/home/xxx/0.library/anaconda3/etc/profile.d/conda.sh" ]; then
. "/public/home/xxx/0.library/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/public/home/liuwenyu/0.library/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
conda activate nco
该段代码在安装anaconda成功后会在bashrc文件中出现,可以直接去copy。
之后就可以在脚本中通过conda activate命令去切换你的虚拟环境了。
如果出现“Illegal variable name.”,检查一下你的脚本首行使用的csh还是bash,修改测试一下就行。
#!/usr/bin/bash -f
终于找到了正确方法,记录一下。