【问题标题】:Read updated environment variables in python在 python 中读取更新的环境变量
【发布时间】:2017-05-23 15:34:03
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: python-3.x subprocess hpc


    【解决方案1】:

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

    #!/bin/bash
    
    MODULE=$1
    EXEC=$2
    
    module load $MODULE
    eval $EXEC
    

    然后,你可以这样使用它:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2018-03-09
      • 2022-07-29
      • 2017-11-07
      相关资源
      最近更新 更多