Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从bash脚本内部加载模块?_Bash_Shell_Environment Modules - Fatal编程技术网

如何从bash脚本内部加载模块?

如何从bash脚本内部加载模块?,bash,shell,environment-modules,Bash,Shell,Environment Modules,我正在试着让脚本运行。本质上,我需要加载一些模块,然后执行python脚本。所以像这样的事情 #!/usr/bin/env bash module use /PATH/TO/MODULEFILE module load MY_MODULE python my_script.py 我遇到的问题是,每次尝试执行脚本时,我都会出现以下错误—“模块:未找到命令”。我不明白如何更改脚本来修复此问题。我能够从shell运行module命令。我还运行了“whereis-b模块”,我得到了“模块:” 我需要

我正在试着让脚本运行。本质上,我需要加载一些模块,然后执行python脚本。所以像这样的事情

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

python my_script.py
我遇到的问题是,每次尝试执行脚本时,我都会出现以下错误—“模块:未找到命令”。我不明白如何更改脚本来修复此问题。我能够从shell运行module命令。我还运行了“whereis-b模块”,我得到了“模块:”


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

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

下面的python代码定义了
module
函数,然后启用modulepath并加载modulefile:

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

如果要在bash脚本中启用
模块
,可以使用不同的命令来运行脚本。对我来说,像
一样运行脚本
script.sh
。script.sh
或as
/script.sh
将正确加载模块,但作为
sh script.sh
运行将导致上述错误。

在python脚本
my_script.py
中加载模块,而不是在bash脚本中加载模块。PS:如果你把
#放进去,你就不需要bash脚本了/usr/bin/python
位于python脚本的顶部。