@@ -167,6 +167,7 @@ class PyBuildExt(build_ext):
167167 def __init__ (self , dist ):
168168 build_ext .__init__ (self , dist )
169169 self .failed = []
170+ self .failed_on_import = []
170171
171172 def build_extensions (self ):
172173
@@ -247,8 +248,9 @@ def build_extensions(self):
247248 build_ext .build_extensions (self )
248249
249250 longest = max ([len (e .name ) for e in self .extensions ])
250- if self .failed :
251- longest = max (longest , max ([len (name ) for name in self .failed ]))
251+ if self .failed or self .failed_on_import :
252+ all_failed = self .failed + self .failed_on_import
253+ longest = max (longest , max ([len (name ) for name in all_failed ]))
252254
253255 def print_three_column (lst ):
254256 lst .sort (key = str .lower )
@@ -276,6 +278,14 @@ def print_three_column(lst):
276278 print_three_column (failed )
277279 print ()
278280
281+ if self .failed_on_import :
282+ failed = self .failed_on_import [:]
283+ print ()
284+ print ("Following modules built successfully"
285+ " but were removed because they could not be imported:" )
286+ print_three_column (failed )
287+ print ()
288+
279289 def build_extension (self , ext ):
280290
281291 if ext .name == '_ctypes' :
@@ -334,7 +344,7 @@ def build_extension(self, ext):
334344 try :
335345 importlib ._bootstrap ._SpecMethods (spec ).load ()
336346 except ImportError as why :
337- self .failed .append (ext .name )
347+ self .failed_on_import .append (ext .name )
338348 self .announce ('*** WARNING: renaming "%s" since importing it'
339349 ' failed: %s' % (ext .name , why ), level = 3 )
340350 assert not self .inplace
0 commit comments