2017-05-23 9 views
0

HPCクラスタで動作するpython3スクリプトを作成しようとしています。このスクリプトの目的は、後でシミュレーションを実行するための環境を設定することです。したがって、さまざまなデータ前処理が必要です。クラスタ上のモジュールを介してインストールされたシミュレーションソフトウェアの複数のバージョンが存在するように、アイデアは、を介してPythonスクリプト内の各モジュール(ソフトウェアバージョン)をロードすることである:module loadコマンドは基本的に、様々なシステム変数を更新Pythonで更新された環境変数を読む

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

、後で実行可能ファイルが必要とするものです。また、スクリプト内のモジュールから実行可能ファイルへのさまざまな呼び出しがあるかもしれません。したがって、上記の2つのコマンドを1つに組み合わせることは、私にとってはうまくいきません。モジュールをロードした後、システムから更新されたシステム変数を取得するにはどうすればよいですか?助言がありますか?

ありがとうございました。

答えて

0

あなたが試すことができるのは、ラッパースクリプトを使用することです。このような何か:

#!/bin/bash 

MODULE=$1 
EXEC=$2 

module load $MODULE 
eval $EXEC 

その後、あなたはこのようにそれを使用することができます。

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

関連する問題