|
9 | 9 | import textwrap
|
10 | 10 | from collections import OrderedDict
|
11 | 11 | from types import TracebackType
|
12 |
| -from typing import TYPE_CHECKING, Iterable, List, Optional, Set, Tuple, Type |
| 12 | +from typing import TYPE_CHECKING, Iterable, List, Optional, Set, Tuple, Type, Union |
13 | 13 |
|
14 | 14 | from pip._vendor.certifi import where
|
15 | 15 | from pip._vendor.packaging.requirements import Requirement
|
16 | 16 | from pip._vendor.packaging.version import Version
|
17 | 17 |
|
18 | 18 | from pip import __file__ as pip_location
|
19 | 19 | from pip._internal.cli.spinners import open_spinner
|
20 |
| -from pip._internal.locations import ( |
21 |
| - get_isolated_environment_bin_path, |
22 |
| - get_isolated_environment_lib_paths, |
23 |
| - get_platlib, |
24 |
| - get_purelib, |
25 |
| -) |
| 20 | +from pip._internal.locations import get_platlib, get_purelib, get_scheme |
26 | 21 | from pip._internal.metadata import get_default_environment, get_environment
|
27 | 22 | from pip._internal.utils.subprocess import call_subprocess
|
28 | 23 | from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds
|
|
33 | 28 | logger = logging.getLogger(__name__)
|
34 | 29 |
|
35 | 30 |
|
| 31 | +def _dedup(a: str, b: str) -> Union[Tuple[str], Tuple[str, str]]: |
| 32 | + return (a, b) if a != b else (a,) |
| 33 | + |
| 34 | + |
36 | 35 | class _Prefix:
|
37 | 36 | def __init__(self, path: str) -> None:
|
38 | 37 | self.path = path
|
39 | 38 | self.setup = False
|
40 |
| - self.bin_dir = get_isolated_environment_bin_path(path) |
41 |
| - self.lib_dirs = get_isolated_environment_lib_paths(path) |
| 39 | + scheme = get_scheme("", prefix=path) |
| 40 | + self.bin_dir = scheme.scripts |
| 41 | + self.lib_dirs = _dedup(scheme.purelib, scheme.platlib) |
42 | 42 |
|
43 | 43 |
|
44 | 44 | def get_runnable_pip() -> str:
|
|
0 commit comments