KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
The problem I'm having is with Eclipse/PyCharm interpreting the results of subprocess's Popen() differently from a standard terminal. All are using python2.6.1 on OSX. Here's a simple example script: import subprocess args = ["/usr/bin/which", "git"] print "Will execute %s" % " ".join(args) try: p = subprocess.Popen(["/usr/bin/which", "git"], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # tuple of StdOut, StdErr is the responses, so .. ret = p.communicate() if ret[0] == '' and ret[1] <> '': msg = "cmd %s failed: %s" % (fullcmd, ret[1]) if fail_on_error: raise NameError(msg) except OSError, e: print >>sys.stderr, "Execution failed:", e With a standard terminal, the line: ret = p.communicate() gives me: (Pdb) print ret ('/usr/local/bin/git\n', '') Eclipse and PyCharm give me an empty tuple: ret = {tuple} ('','') Changing the shell= value does not solve the problem either. On the terminal, setting shell=True, and passing the command in altogether (i.e., args=["/usr/bin/which git"]) gives me the same result: ret = ('/usr/local/bin/git\n', ''). And Eclipse/PyCharm both give me an empty tuple. Any ideas on what I could be doing wrong?
Tags (comma-separated)
Save Edits
Cancel