From bbf825eee764cae0bc44077ccc957a733d53d095 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20S=C3=BAkup?=
 <mimi1vx@users.noreply.github.com>
Date: Fri, 15 Nov 2019 08:52:35 +0100
Subject: [PATCH] Fix _imp module behaviour if is defined paths in find_spec
 call

fixes #1896
---
 setuptools/_imp.py | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/setuptools/_imp.py b/setuptools/_imp.py
index a3cce9b28..6ccec5799 100644
--- a/setuptools/_imp.py
+++ b/setuptools/_imp.py
@@ -19,7 +19,10 @@
 
 def find_module(module, paths=None):
     """Just like 'imp.find_module()', but with package support"""
-    spec = importlib.util.find_spec(module, paths)
+    if isinstance(paths, list):
+        spec = importlib.machinery.PathFinder().find_spec(module, paths)
+    else:
+        spec = importlib.util.find_spec(module, paths)
     if spec is None:
         raise ImportError("Can't find %s" % module)
     if not spec.has_location and hasattr(spec, 'submodule_search_locations'):
@@ -60,14 +63,20 @@ def find_module(module, paths=None):
 
 
 def get_frozen_object(module, paths=None):
-    spec = importlib.util.find_spec(module, paths)
+    if isinstance(paths, list):
+        spec = importlib.machinery.PathFinder().find_spec(module, paths)
+    else:
+        spec = importlib.util.find_spec(module, paths)
     if not spec:
         raise ImportError("Can't find %s" % module)
     return spec.loader.get_code(module)
 
 
 def get_module(module, paths, info):
-    spec = importlib.util.find_spec(module, paths)
+    if isinstance(paths, list):
+        spec = importlib.machinery.PathFinder().find_spec(module, paths)
+    else:
+        spec = importlib.util.find_spec(module, paths)
     if not spec:
         raise ImportError("Can't find %s" % module)
     return module_from_spec(spec)
