Prev: Call Signtool using python
Next: Queue peek?
From: Albert Hopkins on 2 Mar 2010 09:24 I have a snippet of code that looks like this: pid, fd = os.forkpty() if pid == 0: subprocess.call(args) else: input = os.fdopen(fd).read() ... This seems to work find for CPython 2.5 and 2.6 on my Linux system. However, with CPython 3.1 I get: input = os.fdopen(fd).read() IOError: [Errno 5] Input/output error Is there something wrong in Python 3.1? Is this the correct way to do this (run a process in a pseudo-tty and read it's output) or is there another way I should/could be doing this? -a
From: MRAB on 2 Mar 2010 12:32 Albert Hopkins wrote: > I have a snippet of code that looks like this: > > pid, fd = os.forkpty() > if pid == 0: > subprocess.call(args) > else: > input = os.fdopen(fd).read() > ... > > > This seems to work find for CPython 2.5 and 2.6 on my Linux system. > However, with CPython 3.1 I get: > > input = os.fdopen(fd).read() > IOError: [Errno 5] Input/output error > > Is there something wrong in Python 3.1? Is this the correct way to do > this (run a process in a pseudo-tty and read it's output) or is there > another way I should/could be doing this? > The documentation also mentions the 'pty' module. Have you tried that instead?
From: Terry Reedy on 2 Mar 2010 13:25 On 3/2/2010 9:24 AM, Albert Hopkins wrote: > I have a snippet of code that looks like this: > > pid, fd = os.forkpty() > if pid == 0: > subprocess.call(args) > else: > input = os.fdopen(fd).read() > ... > > > This seems to work find for CPython 2.5 and 2.6 on my Linux system. To get help, or report a bug, for something like this, be as specific as possible. 'Linux' may be too generic. > However, with CPython 3.1 I get: > > input = os.fdopen(fd).read() > IOError: [Errno 5] Input/output error > > Is there something wrong in Python 3.1? Is this the correct way to do > this (run a process in a pseudo-tty and read it's output) or is there > another way I should/could be doing this? No idea, however, the first thing I would do is call the .fdopen and ..read methods separately (on separate lines) to isolate which is raising the error. tjr
From: Albert Hopkins on 2 Mar 2010 15:22 On Tue, 2010-03-02 at 13:25 -0500, Terry Reedy wrote: > To get help, or report a bug, for something like this, be as specific as > possible. 'Linux' may be too generic. This is on Python on Gentoo Linux x64 with kernel 2.6.33. > > > However, with CPython 3.1 I get: > > > > input = os.fdopen(fd).read() > > IOError: [Errno 5] Input/output error > > > > Is there something wrong in Python 3.1? Is this the correct way to do > > this (run a process in a pseudo-tty and read it's output) or is there > > another way I should/could be doing this? > > No idea, however, the first thing I would do is call the .fdopen and > .read methods separately (on separate lines) to isolate which is raising > the error. The exception occurs on the read() method.
From: Albert Hopkins on 2 Mar 2010 15:22
On Tue, 2010-03-02 at 17:32 +0000, MRAB wrote: > The documentation also mentions the 'pty' module. Have you tried that > instead? I haven't but I'll give it a try. Thanks. -a |