subprocess.Popen instance hangs

MRAB python at mrabarnett.plus.com
Thu Aug 29 15:01:56 EDT 2013


On 29/08/2013 19:34, Tim Johnson wrote:
> using Python 2.7.1 on OS X 10.7.5
>
> I'm managing a process of drush using an instance of subprocess.Popen
>
> The process has a '--verbose' option. When that option is passed as
> part of the initializer `args' argument, the process will hang.
>
> It should be no surprise as drush output with the --verbose option
> can be _extremely_ verbose, and I can do without it, but I would
> like to learn how to handle it. I've googled this topic, but my poor
> little brain is yet to sort out all of the content found.
>
> ## my relevant code follows :
> p = subprocess.Popen(args,stderr=subprocess.STDOUT,stdout=subprocess.PIPE)
> ## wait() is 'forever' if '--verbose' used
> exit_status = p.wait()
> output = p.stdout.read()
> ## done
>
> I 'suspect' that using a tempfile may be the solution, if so, I
> could use some examples.
>
The subprocess will terminate when it has finished writing its output,
but because you're not consuming any of the output (you're waiting for
it to finish), the buffer fills up and blocks the subprocess.

Try reading the output or using the .communicate method.

Alternatively, pass an open file as the stdout argument.




More information about the Python-list mailing list