Permalink
Browse files

Fall back to pure-python mode on any exception during the build.

Stop the futile process of trying to enumerate which kinds of exceptions
distutils may throw (the latest potential addition: ValueError).

Closes #1115.
  • Loading branch information...
1 parent 52b6d1d commit 58370bd289ee6b4577e622346d0621236701a478 @bdarnell bdarnell committed Jul 17, 2014
Showing with 2 additions and 12 deletions.
  1. +2 −12 setup.py
View
14 setup.py
@@ -34,16 +34,6 @@
# to support installing without the extension on platforms where
# no compiler is available.
from distutils.command.build_ext import build_ext
-from distutils.errors import CCompilerError
-from distutils.errors import DistutilsPlatformError, DistutilsExecError
-if sys.platform == 'win32' and sys.version_info > (2, 6):
- # 2.6's distutils.msvc9compiler can raise an IOError when failing to
- # find the compiler
- build_errors = (CCompilerError, DistutilsExecError,
- DistutilsPlatformError, IOError)
-else:
- build_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError,
- SystemError)
class custom_build_ext(build_ext):
"""Allow C extension building to fail.
@@ -83,7 +73,7 @@ class custom_build_ext(build_ext):
def run(self):
try:
build_ext.run(self)
- except build_errors:
+ except Exception:
e = sys.exc_info()[1]
sys.stdout.write('%s\n' % str(e))
warnings.warn(self.warning_message % ("Extension modules",
@@ -95,7 +85,7 @@ def build_extension(self, ext):
name = ext.name
try:
build_ext.build_extension(self, ext)
- except build_errors:
+ except Exception:
e = sys.exc_info()[1]
sys.stdout.write('%s\n' % str(e))
warnings.warn(self.warning_message % ("The %s extension "

0 comments on commit 58370bd

Please sign in to comment.