summaryrefslogtreecommitdiff
path: root/_distutils_hack/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to '_distutils_hack/__init__.py')
-rw-r--r--_distutils_hack/__init__.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/_distutils_hack/__init__.py b/_distutils_hack/__init__.py
index 504c4ac0..c31edfed 100644
--- a/_distutils_hack/__init__.py
+++ b/_distutils_hack/__init__.py
@@ -92,9 +92,22 @@ class DistutilsMetaFinder:
Ensure stdlib distutils when running under pip.
See pypa/pip#8761 for rationale.
"""
+ if self.pip_imported_during_build():
+ return
clear_distutils()
self.spec_for_distutils = lambda: None
+ @staticmethod
+ def pip_imported_during_build():
+ """
+ Detect if pip is being imported in a build script. Ref #2355.
+ """
+ import traceback
+ return any(
+ frame.f_globals['__file__'].endswith('setup.py')
+ for frame, line in traceback.walk_stack(None)
+ )
+
DISTUTILS_FINDER = DistutilsMetaFinder()