From 3b49c9babd61338ac050d1c7c3e4e6909eaa46d9 Mon Sep 17 00:00:00 2001 From: Greg Ward Date: Mon, 17 Jan 2000 21:57:55 +0000 Subject: [PATCH] Catch OSError from 'spawnv()' in '_spawn_nt()'. Tweaked error messages in '_spawn_posix()'. --- Lib/distutils/spawn.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Lib/distutils/spawn.py b/Lib/distutils/spawn.py index eee8e7f4a0c..9a88ac89877 100644 --- a/Lib/distutils/spawn.py +++ b/Lib/distutils/spawn.py @@ -63,9 +63,16 @@ def _spawn_nt ( cmd, print string.join ( [executable] + cmd[1:], ' ') if not dry_run: # spawn for NT requires a full path to the .exe - rc = os.spawnv (os.P_WAIT, executable, cmd) + try: + rc = os.spawnv (os.P_WAIT, executable, cmd) + except OSError, exc: + # this seems to happen when the command isn't found + raise DistutilsExecError, \ + "command '%s' failed: %s" % (cmd[0], exc[-1]) if rc != 0: - raise DistutilsExecError("command failed: %d" % rc) + # and this reflects the command running but failing + raise DistutilsExecError, \ + "command '%s' failed with exit status %d" % (cmd[0], rc) @@ -103,7 +110,7 @@ def _spawn_posix (cmd, (pid, status) = os.waitpid (pid, 0) if os.WIFSIGNALED (status): raise DistutilsExecError, \ - "command %s terminated by signal %d" % \ + "command '%s' terminated by signal %d" % \ (cmd[0], os.WTERMSIG (status)) elif os.WIFEXITED (status): @@ -112,7 +119,7 @@ def _spawn_posix (cmd, return # hey, it succeeded! else: raise DistutilsExecError, \ - "command %s failed with exit status %d" % \ + "command '%s' failed with exit status %d" % \ (cmd[0], exit_status) elif os.WIFSTOPPED (status): @@ -120,6 +127,6 @@ def _spawn_posix (cmd, else: raise DistutilsExecError, \ - "unknown error executing %s: termination status %d" % \ + "unknown error executing '%s': termination status %d" % \ (cmd[0], status) # _spawn_posix ()