There are so many threads on this subject, but I ran across a
situation on Windows that I can't figure out.

I'm trying to run this little command-line exe and when I launch like
this, it hangs:

>>> import subprocess
>>> command = r'c:\mydir\foo.exe'
>>> run = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, 
>>> stdin=None, stderr=subprocess.PIPE, env=os.environ, universal_newlines=True)
>>> returncode = run.wait()  ## HANGS HERE ##

I can run this exe manually via the command prompt and it returns
after a few seconds, but more importantly when I run it as follows it
works fine:

>>> import os
>>> command = r'c:\mydir\foo.exe'
>>> os.system(command)  ## WORKS FINE! ##

Unfortunately I don't know too much about the exe (well, I do know
that it spits out some stdout that I collect, but I don't know the
exe's source code.)

I can't figure out why the subprocess module is having a hard time
with this particular exe.  I've tried so many different permutations
of subprocess.Popen and they all hang on this exe.  Even if try to do
the usual (pseudo code):
while(returncode is None):
    returncode = run.poll()
    time.sleep(1)
    blah blah blah

returncode is always None... In other words, it's hung.  I can't
figure out why os.system works fine, but subprocess.Popen thinks the
process hasn't finished.

Any ideas would be greatly appreciated.  I'm all ears.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to