File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed
Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -88,10 +88,16 @@ def import_driver_module(
8888 return importlib .import_module (module_name )
8989
9090 # Skip find_spec if module is already in sys.modules (allows test mocking)
91- if module_name not in sys .modules and importlib .util .find_spec (module_name ) is None :
92- from ...db .exceptions import MissingDriverError
93-
94- raise MissingDriverError (driver_name , extra_name , package_name , module_name = module_name )
91+ # find_spec can raise ModuleNotFoundError for submodules like 'mysql.connector'
92+ if module_name not in sys .modules :
93+ try :
94+ spec = importlib .util .find_spec (module_name )
95+ except ModuleNotFoundError :
96+ spec = None
97+ if spec is None :
98+ from ...db .exceptions import MissingDriverError
99+
100+ raise MissingDriverError (driver_name , extra_name , package_name , module_name = module_name )
95101
96102 try :
97103 return importlib .import_module (module_name )
You can’t perform that action at this time.
0 commit comments