Skip to content

Commit a057c9b

Browse files
authored
Merge pull request #11623 from dnicolodi/debian-scheme
2 parents c678350 + a0c607f commit a057c9b

File tree

4 files changed

+17
-11
lines changed

4 files changed

+17
-11
lines changed

news/11623.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix scripts path in isolated build environment on Debian.

src/pip/_internal/build_env.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import sys
99
import textwrap
1010
from collections import OrderedDict
11-
from sysconfig import get_paths
1211
from types import TracebackType
1312
from typing import TYPE_CHECKING, Iterable, List, Optional, Set, Tuple, Type
1413

@@ -19,6 +18,7 @@
1918
from pip import __file__ as pip_location
2019
from pip._internal.cli.spinners import open_spinner
2120
from pip._internal.locations import (
21+
get_isolated_environment_bin_path,
2222
get_isolated_environment_lib_paths,
2323
get_platlib,
2424
get_purelib,
@@ -37,10 +37,7 @@ class _Prefix:
3737
def __init__(self, path: str) -> None:
3838
self.path = path
3939
self.setup = False
40-
self.bin_dir = get_paths(
41-
"nt" if os.name == "nt" else "posix_prefix",
42-
vars={"base": path, "platbase": path},
43-
)["scripts"]
40+
self.bin_dir = get_isolated_environment_bin_path(path)
4441
self.lib_dirs = get_isolated_environment_lib_paths(path)
4542

4643

src/pip/_internal/locations/__init__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@
2525
"USER_CACHE_DIR",
2626
"get_bin_prefix",
2727
"get_bin_user",
28+
"get_isolated_environment_bin_path",
29+
"get_isolated_environment_lib_paths",
2830
"get_major_minor_version",
2931
"get_platlib",
30-
"get_isolated_environment_lib_paths",
3132
"get_purelib",
3233
"get_scheme",
3334
"get_src_prefix",
@@ -526,3 +527,7 @@ def get_isolated_environment_lib_paths(prefix: str) -> List[str]:
526527
_log_context(prefix=prefix)
527528

528529
return old_lib_paths
530+
531+
532+
def get_isolated_environment_bin_path(prefix: str) -> str:
533+
return _sysconfig.get_isolated_environment_paths(prefix)["scripts"]

src/pip/_internal/locations/_sysconfig.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,13 @@ def get_platlib() -> str:
213213
return sysconfig.get_paths()["platlib"]
214214

215215

216-
def get_isolated_environment_lib_paths(prefix: str) -> typing.Tuple[str, str]:
217-
vars = {"base": prefix, "platbase": prefix}
216+
def get_isolated_environment_paths(prefix: str) -> typing.Dict[str, str]:
217+
variables = {"base": prefix, "platbase": prefix}
218218
if "venv" in sysconfig.get_scheme_names():
219-
paths = sysconfig.get_paths(vars=vars, scheme="venv")
220-
else:
221-
paths = sysconfig.get_paths(vars=vars)
219+
return sysconfig.get_paths(vars=variables, scheme="venv")
220+
return sysconfig.get_paths(vars=variables)
221+
222+
223+
def get_isolated_environment_lib_paths(prefix: str) -> typing.Tuple[str, str]:
224+
paths = get_isolated_environment_paths(prefix)
222225
return (paths["purelib"], paths["platlib"])

0 commit comments

Comments
 (0)