From: Benjamin Peterson Date: Wed, 30 Apr 2014 15:06:16 +0000 (-0400) Subject: setup.py: report modules which built but import failed (closes #21282) X-Git-Tag: v3.5.0a1~1760 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5c2ac8c1c664d17924157ed769a7541c9228a1e3;p=python setup.py: report modules which built but import failed (closes #21282) Patch by Lukas Vacek. --- diff --git a/Misc/ACKS b/Misc/ACKS index 82c6f71b3d..827c784e60 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1356,6 +1356,7 @@ Roger Upole Daniel Urban Michael Urman Hector Urtubia +Lukas Vacek Ville Vainio Andi Vajda Case Van Horsen diff --git a/setup.py b/setup.py index c0bb513296..e6b4d515ad 100644 --- a/setup.py +++ b/setup.py @@ -167,6 +167,7 @@ class PyBuildExt(build_ext): def __init__(self, dist): build_ext.__init__(self, dist) self.failed = [] + self.failed_on_import = [] def build_extensions(self): @@ -247,8 +248,9 @@ class PyBuildExt(build_ext): build_ext.build_extensions(self) longest = max([len(e.name) for e in self.extensions]) - if self.failed: - longest = max(longest, max([len(name) for name in self.failed])) + if self.failed or self.failed_on_import: + all_failed = self.failed + self.failed_on_import + longest = max(longest, max([len(name) for name in all_failed])) def print_three_column(lst): lst.sort(key=str.lower) @@ -276,6 +278,14 @@ class PyBuildExt(build_ext): print_three_column(failed) print() + if self.failed_on_import: + failed = self.failed_on_import[:] + print() + print("Following modules built successfully" + " but were removed because they could not be imported:") + print_three_column(failed) + print() + def build_extension(self, ext): if ext.name == '_ctypes': @@ -334,7 +344,7 @@ class PyBuildExt(build_ext): try: importlib._bootstrap._SpecMethods(spec).load() except ImportError as why: - self.failed.append(ext.name) + self.failed_on_import.append(ext.name) self.announce('*** WARNING: renaming "%s" since importing it' ' failed: %s' % (ext.name, why), level=3) assert not self.inplace