Tim Johnson
> 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.
> 
> thanks
> --
> Tim
> tim at tee jay forty nine dot com or akwebsoft dot com
> http://www.akwebsoft.com
> --


I think the documentation covers your issue. 

"""
Popen.wait()
    Wait for child process to terminate. Set and return returncode attribute.
    Warning: will deadlock when using stdout=PIPE and/or stderr=PIPE and the 
child 
    process generates enough output to a pipe such that it blocks waiting for 
the 
    OS pipe buffer to accept more data. Use [Popen.]communicate() to avoid that.
""" From http://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait

Does switching to `p.communicate()` solve your problem?


~Ramit



This email is confidential and subject to important disclaimers and conditions 
including on offers for the purchase or sale of securities, accuracy and 
completeness of information, viruses, confidentiality, legal privilege, and 
legal entity disclaimers, available at 
http://www.jpmorgan.com/pages/disclosures/email.  
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to