1

モジュールのサブプロセスに問題があります。Python からスクリプトを実行しています。

subprocess.Popen('./run_pythia.sh', shell=True).communicate()

また、ブロックするだけで、スクリプトの実行が完了しない場合もあります。以前は を使用していまし.wait()たが、 に切り替えました.communicate()。それでも問題は続きます。

最初に、スクリプトはいくつかのファイルをコンパイルし、次にファイルに実行します。

run_pythia.sh:

#!/bin/bash
#PBS -l walltime=1:00:00

./compile.sh
./exec > resultado.txt

compile.sh:

O=`find ./ -name "*.o" | xargs`

# LOAD cernlib2005
module load libs/cernlib/2005

# Compile and Link
FC=g77
CERNLIBPATH="-L/software/local/cernlib/2005/lib -lpacklib"

$FC call_pyth_mix.f analise_tt.f $O $CERNLIBPATH -o exec
4

2 に答える 2

3

実行するスクリプトは、実行run_pythia.shが完了することが保証されていますか? そうでない場合は、 のようなブロッキング メソッドを使用したくない場合がありますcommunicate()。返されたプロセス ハンドルの.stdout.stderr、およびファイル ハンドルとの対話を (ブロックしない方法で) 調べることをお勧めします。.stdin

また、引き続き を使用する場合は、オブジェクトをのコンストラクター引数にcommunicate()渡す必要があります。subprocess.PIPEPopen

詳細については、モジュールのドキュメントを参照してください。

于 2010-05-04T23:49:30.660 に答える
0

多分あなたはそれをトレースしようとすることができます:

import pdb; pdb.set_trace()
于 2010-05-05T10:01:11.127 に答える