Creating a pipe with subprocess.Popen fails if Python
is running in a non-interactive subshell under XEmacs
on MSWin.
This program
import subprocess
pipe = subprocess.Popen(['cmd', '/c', r'echo', 'Hi
there!'],
stdout=subprocess.PIPE)
print pipe.stdout.read()
produces the expected "Hi there!" when run from a
console. But when run from an XEmacs non-interactive
subshell, I get this traceback:
Traceback (most recent call last):
File "C:\temp\subprocessbug.py", line 3, in ?
stdout=subprocess.PIPE)
File "c:\App\Dev\Python24\lib\subprocess.py", line
545, in __init__
(p2cread, p2cwrite,
File "c:\App\Dev\Python24\lib\subprocess.py", line
605, in _get_handles
p2cread = self._make_inheritable(p2cread)
File "c:\App\Dev\Python24\lib\subprocess.py", line
646, in _make_inheritable
DUPLICATE_SAME_ACCESS)
TypeError: an integer is required
Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32
bit (Intel)]
W2K, XEmacs 21.4p13
|