@@ -73,9 +73,13 @@ class MissingModule:
7373
7474 def __init__ (self , name , urgent = 0 ):
7575 self .name = name
76- exc_type , exc_msg = sys .exc_info ()[:2 ]
77- self .info = str (exc_msg )
78- self .reason = f"{ exc_type .__name__ } : { self .info } "
76+ exc_type , exc_msg , _ = sys .exc_info ()
77+ if exc_type is not None :
78+ self .info = str (exc_msg )
79+ self .reason = f"{ exc_type .__name__ } : { self .info } "
80+ else :
81+ self .info = "<no info>"
82+ self .reason = f"<no exception>: { self .info } "
7983 self .urgent = urgent
8084 if urgent :
8185 self .warn ()
@@ -315,11 +319,14 @@ def lazy_import(name):
315319
316320 Lazily imported modules are directly referenced in packager_imports function.
317321 """
318- spec = find_spec ("pygame." + name )
322+ fullname = "pygame." + name
323+ spec = find_spec (fullname )
324+ if spec is None or spec .loader is None :
325+ return MissingModule (name , urgent = 0 )
319326 loader = LazyLoader (spec .loader )
320327 spec .loader = loader
321328 module = module_from_spec (spec )
322- sys .modules [spec . name ] = module
329+ sys .modules [fullname ] = module
323330 loader .exec_module (module )
324331 return module
325332
0 commit comments