Catch DistutilsOptionError in 'setup()' -- it's thrown either because of
errors in the setup script or on the command line, so shouldn't result
in a traceback.
diff --git a/Lib/distutils/core.py b/Lib/distutils/core.py
index 9a80106..814f441 100644
--- a/Lib/distutils/core.py
+++ b/Lib/distutils/core.py
@@ -96,7 +96,9 @@
                       "error: %s: %s" % (exc.filename, exc.strerror)
             else:
                 raise SystemExit, str (exc)
-        except (DistutilsExecError, DistutilsFileError), msg:
+        except (DistutilsExecError,
+                DistutilsFileError,
+                DistutilsOptionError), msg:
             raise SystemExit, "error: " + str (msg)
 
 # setup ()