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 ##
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 ##
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! ##
command = r'c:\mydir\foo.exe'
os.system(command) ## WORKS FINE! ##
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.