如何从bash脚本中加载模块?

时间:2017-10-24 18:44:48

标签: bash shell environment-modules

我试图让脚本运行。基本上我需要加载一些模块然后执行python脚本。所以像这样......

#!/usr/bin/env bash
module use /PATH/TO/MODULEFILE
module load MY_MODULE

python my_script.py

我得到的问题是每次我尝试执行脚本时都会收到此错误 - " module:command not found"。我不明白如何更改脚本来解决这个问题。我能够从shell运行模块命令。我也跑了" whereis -b module"我刚刚得到了"模块:"。

从脚本内部加载此模块需要做什么?感谢

2 个答案:

答案 0 :(得分:0)

您可以通过获取模块安装的module目录中提供的python.py初始化脚本来从python脚本启用init命令。

以下python代码定义了module函数,然后启用了模块路径并加载了模块文件:

#!/usr/bin/python
import os
exec(open('/PATH/TO/MODULES/init/python.py').read())
module('use', '/PATH/TO/MODULEFILE')
module('load', 'MY_MODULE')

答案 1 :(得分:0)

如果要在bash脚本中启用module,可能就像使用其他命令来运行脚本一样简单。对我来说,以script.sh. script.sh身份运行脚本./script.sh可以正确加载模块,但是以sh script.sh身份运行脚本会导致上述错误。