我在模块子进程中遇到问题;我正在从Python运行一个脚本:
subprocess.Popen('./run_pythia.sh', shell=True).communicate()
有时它只是块,它没有完成执行脚本。在我使用.wait()
之前,但是我switched to ^{
该脚本首先编译一些文件,然后执行到一个文件中:
run_pythia.sh
:
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
您执行的脚本是否保证}文件句柄的交互(以非阻塞方式)。在
run_pythia.sh
完成执行?否则,您可能不希望使用communicate()
之类的阻塞方法。您可能需要亲自研究与返回的进程句柄的.stdout
、.stderr
和{另外,如果您还想使用
communicate()
,则需要将subprocess.PIPE
对象传递给Popen
的构造函数参数。在有关详细信息,请阅读模块上的documentation。在
也许你可以试着追踪一下:
相关问题 更多 >
编程相关推荐