在python中读取更新的环境变量

时间:2017-05-23 15:34:03

标签: python-3.x subprocess hpc

我正在尝试创建一个在HPC群集上运行的python3脚本。此脚本的目的是为之后的运行模拟设置环境。因此,需要各种数据预处理活动。由于通过群集上的模块安装了多个版本的仿真软件,因此想法是通过以下方式在python脚本中加载相应的模块(软件版本):

import subprocess
subprocess.Popen('module load hpcmodule',shell=True).wait()
subprocess.Popen('executablefromhpcmodule.exe') 

module load命令基本上更新了之后可执行文件所需的各种系统变量。此外,脚本中可能会对模块中的可执行文件进行各种调用。因此,将上面显示的两个命令合并为一个对我来说不起作用。如何在加载模块后从系统中获取更新的系统变量。有什么建议?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用包装器脚本。像这样:

#!/bin/bash

MODULE=$1
EXEC=$2

module load $MODULE
eval $EXEC

然后,您可以像这样使用它:

subprocess.call(["wrapper.sh", "hpcmodule", "executablefromhpcmodule.exe"])