Python子进程b

2024-09-30 22:27:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我在模块子进程中遇到问题;我正在从Python运行一个脚本:

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

有时它只是块,它没有完成执行脚本。在我使用.wait()之前,但是我switched to ^{}。然而,问题仍然存在。在

该脚本首先编译一些文件,然后执行到一个文件中:

run_pythia.sh

^{pr2}$

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

Tags: 模块文件run脚本true进程shshell
2条回答

您执行的脚本是否保证run_pythia.sh完成执行?否则,您可能不希望使用communicate()之类的阻塞方法。您可能需要亲自研究与返回的进程句柄的.stdout.stderr和{}文件句柄的交互(以非阻塞方式)。在

另外,如果您还想使用communicate(),则需要将subprocess.PIPE对象传递给Popen的构造函数参数。在

有关详细信息,请阅读模块上的documentation。在

也许你可以试着追踪一下:

import pdb; pdb.set_trace()

相关问题 更多 >