[Idle-dev] subprocess problem on Windows in IDLE
Kurt B. Kaiser
kbk at shore.net
Thu Feb 17 21:37:34 CET 2005
"David S." <davidschein at alumni.tufts.edu> writes:
> please see:
Python Bug 1126208
From: David S. <davidschein <at> alumni.tufts.edu>
Subject: subprocess problem on Windows in IDLE and PythonWin
Date: Wed, 16 Feb 2005 02:05:24 +0000
Python 2.4 on Windows XP
In the python command-line the following works fine:
>>> from subprocess import *
>>> p = Popen('dir', stdout=PIPE)
>From within IDLE or PythonWin I get the following exception:
Traceback (most recent call last):
File "<pyshell#13>", line 1, in -toplevel-
p = Popen('dir', stdout=PIPE)
File "c:\python24\lib\subprocess.py", line 545, in __init__
File "c:\python24\lib\subprocess.py", line 605, in _get_handles
p2cread = self._make_inheritable(p2cread)
File "c:\python24\lib\subprocess.py", line 646, in _make_inheritable
TypeError: an integer is required
Note it works fine on Linux also. I tested it with
>>> p = Popen('ls', stdout=PIPE)
... and had no trouble.
I (KBK) can duplicate this on W2K. If I run IDLE with the -n switch
(no subprocess) the error doesn't occur.
Unfortunately, I can't debug it because I don't have the necessary
tools on Windows. It appears that the problem is in
_subprocess.c:sp_DuplicateHandle(), likely that PyArg_ParseTuple()
is OK but the failure occurs in the call to DuplicateHandle().
All the args to sp_DuplicateHandle() seem to be the right type.
DUPLICATE_SAME_ACCESS is an integer, value 2
To find out what's going on, it would seem necessary to attach a
windows debugger to IDLE's subprocess (not the IDLE GUI). Let
me know if I can help.
Suggest you monitor that Bug.
More information about the IDLE-dev