2017-06-19 14 views
0

私はmodule load numeca/open/61_numeca_mpiを書きます。私はEnterキーを押し、プログラムはモジュールライセンスをアップロードしてから、fineと入力してもう一度Enterキーを押します。私はこれを行うPythonスクリプトを書いた。Pythonスクリプトからlinuxコマンドを実行するには

import os 

os.system("module load numeca/open/61_numeca_mpi") 
os.system("fine") 

これは、モジュールのライセンスをアップロードしますが、それは

ERROR:105: Unable to locate a modulefile for 'fine'. 

任意の提案を言いますか?このように、同じシェルで両方のコマンドを実行

+0

問題はos.system'が開き 'ということですそれぞれのコマンドの新しいシェルです。これはあなたが送った 'fine'が別のシェルにあり、' module'コマンドの前にあることを意味します。 – EarthDragon

答えて

0

試してみてください。

os.system("module load numeca/open/61_numeca_mpi && fine") 
+0

ありがとう!!!!!!できます!! – costanza

1

がサブプロセスモジュール試してみてください:あなたが試したものと

import subprocess 
p= subprocess.Popen(['module','load numeca/open/61_numeca_mpi"'],stdout=subprocess.PIPE,stdin=subprocess.PIPE) 
p.stdin.write('fine') 
p.communicate()[0] 
p.stdin.close() 
関連する問題