blob: 2621317057760448dc2a442c781cebc9ba9cd473 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
diff --git a/src/build/env.py b/src/build/env.py
index e583e68..ae5177b 100644
--- a/src/build/env.py
+++ b/src/build/env.py
@@ -11,6 +11,7 @@ import sys
import sysconfig
import tempfile
import typing
+import warnings
from collections.abc import Collection, Mapping
@@ -158,8 +159,21 @@ class _PipBackend(_EnvBackend):
This checks for a valid global pip. Returns None if pip is missing, False
if pip is too old, and True if it can be used.
"""
+
# Version to have added the `--python` option.
- return _has_dependency('pip', '22.3')
+ if not _has_dependency('pip', '22.3'): # pragma: no cover
+ return False
+
+ # `pip install --python` is nonfunctional on Gentoo debundled pip.
+ # Detect that by checking if pip._vendor` module exists. However,
+ # searching for pip could yield warnings from _distutils_hack,
+ # so silence them.
+ with warnings.catch_warnings():
+ warnings.simplefilter('ignore')
+ if importlib.util.find_spec('pip._vendor') is None:
+ return False # pragma: no cover
+
+ return True
@functools.cached_property
def _has_virtualenv(self) -> bool:
|