SF patch 1631942 by Collin Winter:
(a) "except E, V" -> "except E as V"
(b) V is now limited to a simple name (local variable)
(c) V is now deleted at the end of the except block
diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index 75e8a53..0795f12 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -162,7 +162,7 @@
                 self.mkpath(os.path.dirname(output_file))
             try:
                 self.spawn(pp_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise CompileError, msg
 
     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
@@ -172,7 +172,7 @@
         try:
             self.spawn(compiler_so + cc_args + [src, '-o', obj] +
                        extra_postargs)
-        except DistutilsExecError, msg:
+        except DistutilsExecError as msg:
             raise CompileError, msg
 
     def create_static_lib(self, objects, output_libname,
@@ -196,7 +196,7 @@
             if self.ranlib:
                 try:
                     self.spawn(self.ranlib + [output_filename])
-                except DistutilsExecError, msg:
+                except DistutilsExecError as msg:
                     raise LibError, msg
         else:
             log.debug("skipping %s (up-to-date)", output_filename)
@@ -250,7 +250,7 @@
                     linker = _darwin_compiler_fixup(linker, ld_args)
 
                 self.spawn(linker + ld_args)
-            except DistutilsExecError, msg:
+            except DistutilsExecError as msg:
                 raise LinkError, msg
         else:
             log.debug("skipping %s (up-to-date)", output_filename)