Titus Brown wrote: > On Thu, Mar 22, 2007 at 09:34:46PM +0000, Michael Foord wrote: > -> Guido van Rossum wrote: > -> > Sure. os.fork() and the os.exec*() family can stay. But os.spawn*(), > -> > that abomination invented by Microsoft? I also hear no opposition > -> > against killign os.system() and os.popen() > -> > -> Except that 'os.system' is really easy to use and I use it rarely enough > -> that I *always* have to RTFM for subprocess which makes you jump through > -> a few more (albeit simple) hoops. > > Hopefully the patch I'm making will change that, no? > > I could add in a 'system'-alike call easily enough; that was suggested. > But I think > > returncode = subprocess.call("program") > > is pretty simple, isn't it? > Probably. I can just never remember it (I didn't remember it when typing that email). My fault, os.system is just easier to remember - make an os system call. :-)
> -> Additionally, AFAIK subprocess is still broken for py2exe'd applications > -> which is a problem. > > Explain? > Programs created with py2exe (or frozen in other ways I believe - including the Wing IDE for example), fail with an error similar to the following : Traceback (most recent call last): File "main.py", line 133, in <module> main() File "main.py", line 125, in main launch_launcher() File "main.py", line 98, in launch_launcher subprocess.Popen([path], stderr = childstderr) File "subprocess.pyc", line 586, in ___init___ File "subprocess.pyc", line 681, in _get_handles File "subprocess.pyc", line 722, in _make_inheritable TypeError: an integer is required The problem is detailed here : http://www.py2exe.org/index.cgi/Py2ExeSubprocessInteractions "if you used py2exe to create a Windows program as opposed to a console program, and you launched the py2exe program by clicking rather than by running if from a command window, then the parent process has no handle to inherit. subprocess.Popen will throw an exception (TypeError: an integer is required) because GetStdHandle returns None" (Although the workaround as listed there is reported not to work and I haven't put the effort into experimenting.) If subprocess is supposed to be the main way that users launch sub-processes it would be nice if it worked for py2exe without the users (who are often newbies) having to put a workaround in place. Currently of course 'os.system' is often sufficient workaround. :-) All the best, Michael Foord > cheers, > --titus > > _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com