From: Scott Kitterman <scott@kitterman.com>
Date: Sun, 24 May 2020 13:20:53 -0400
Subject: debian python2.7 sysconfig workaround

---
 src/pip/_internal/locations.py  | 16 +++++++++++-----
 src/pip/_internal/utils/misc.py |  6 +-----
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/pip/_internal/locations.py b/src/pip/_internal/locations.py
index 35a4512..f521844 100644
--- a/src/pip/_internal/locations.py
+++ b/src/pip/_internal/locations.py
@@ -60,13 +60,19 @@ def get_src_prefix():
 
 # FIXME doesn't account for venv linked to global site-packages
 
-site_packages = sysconfig.get_path("purelib")  # type: Optional[str]
-
-# This is because of a bug in PyPy's sysconfig module, see
+# The python2.7 part of this is Debian specific:
+# https://github.com/pypa/pip/issues/5193
 # https://bitbucket.org/pypy/pypy/issues/2506/sysconfig-returns-incorrect-paths
-# for more information.
-if platform.python_implementation().lower() == "pypy":
+can_not_depend_on_purelib = (
+    sys.version_info[:2] == (2, 7) or
+    platform.python_implementation().lower() == "pypy"
+)
+site_packages = None  # type: Optional[str]
+if can_not_depend_on_purelib:
     site_packages = distutils_sysconfig.get_python_lib()
+else:
+    site_packages = sysconfig.get_path("purelib")
+
 try:
     # Use getusersitepackages if this is present, as it ensures that the
     # value is initialised properly.
diff --git a/src/pip/_internal/utils/misc.py b/src/pip/_internal/utils/misc.py
index 459312f..b8795cc 100644
--- a/src/pip/_internal/utils/misc.py
+++ b/src/pip/_internal/utils/misc.py
@@ -430,11 +430,7 @@ def dist_is_editable(dist):
     """
     Return True if given Distribution is an editable install.
     """
-    for path_item in sys.path:
-        egg_link = os.path.join(path_item, dist.project_name + '.egg-link')
-        if os.path.isfile(egg_link):
-            return True
-    return False
+    return bool(egg_link_path(dist))
 
 
 def get_installed_distributions(
