Commits

Rémy HUBSCHER committed e75fac8

#12703 - Patch of the resolve.name function

Comments (0)

Files changed (1)

Lib/packaging/util.py

     parts = name.split('.')
     cursor = len(parts)
     module_name = parts[:cursor]
-
+    last_error = None
+    last_error_module_path = None
     while cursor > 0:
         try:
             ret = __import__('.'.join(module_name))
             break
-        except ImportError:
+        except ImportError as ext:
+            last_error = ext
+            args = []
+            if root is not None:
+                args.append(root)
+            args += module_name
+            last_error_module_path = '%s.py' % os.path.join(*args)
             if cursor == 0:
                 raise
             cursor -= 1
             module_name = parts[:cursor]
             ret = ''
-
+        else:
+            last_error = None
+            last_error_module_path = None
     for part in parts[1:]:
         try:
             ret = getattr(ret, part)
         except AttributeError as exc:
+            if last_error is not None \
+                    and os.path.isfile(last_error_module_path):
+                raise last_error
             raise ImportError(exc)
-
     return ret