Skip to content

Commit b8d5fa3

Browse files
committed
getpath: Update build directory assumptions based on python-cmake-buildsystem
This ensures the following tests pass: - `test_sys` (`SysModuleTest.test_stdlib_dir`) - `test_frozen` (`TestFrozen.test_unfrozen_submodule_in_frozen_package`)
1 parent ca2fd1a commit b8d5fa3

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

Lib/test/test_getpath.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ def test_buildpath_posix(self):
304304
ns.add_known_xfile("/home/cpython/python")
305305
ns.add_known_xfile("/usr/local/bin/python")
306306
ns.add_known_file("/home/cpython/pybuilddir.txt", ["build/lib.linux-x86_64-9.8"])
307-
ns.add_known_file("/home/cpython/Lib/os.py")
307+
ns.add_known_file("/home/cpython/lib/python9.8/os.py")
308308
ns.add_known_dir("/home/cpython/lib-dynload")
309309
expected = dict(
310310
executable="/home/cpython/python",
@@ -316,7 +316,7 @@ def test_buildpath_posix(self):
316316
module_search_paths_set=1,
317317
module_search_paths=[
318318
"/usr/local/lib/python98.zip",
319-
"/home/cpython/Lib",
319+
"/home/cpython/lib/python9.8",
320320
"/home/cpython/build/lib.linux-x86_64-9.8",
321321
],
322322
)
@@ -492,7 +492,7 @@ def test_symlink_buildpath_posix(self):
492492
ns.add_known_link("/linkfrom/python", "/home/cpython/python")
493493
ns.add_known_xfile("/usr/local/bin/python")
494494
ns.add_known_file("/home/cpython/pybuilddir.txt", ["build/lib.linux-x86_64-9.8"])
495-
ns.add_known_file("/home/cpython/Lib/os.py")
495+
ns.add_known_file("/home/cpython/lib/python9.8/os.py")
496496
ns.add_known_dir("/home/cpython/lib-dynload")
497497
expected = dict(
498498
executable="/linkfrom/python",
@@ -504,7 +504,7 @@ def test_symlink_buildpath_posix(self):
504504
module_search_paths_set=1,
505505
module_search_paths=[
506506
"/usr/local/lib/python98.zip",
507-
"/home/cpython/Lib",
507+
"/home/cpython/lib/python9.8",
508508
"/home/cpython/build/lib.linux-x86_64-9.8",
509509
],
510510
)
@@ -799,7 +799,7 @@ def test_symlink_buildpath_macos(self):
799799
ns.add_known_link("/linkfrom/python", "/home/cpython/python")
800800
ns.add_known_xfile("/usr/local/bin/python")
801801
ns.add_known_file("/home/cpython/pybuilddir.txt", ["build/lib.macos-9.8"])
802-
ns.add_known_file("/home/cpython/Lib/os.py")
802+
ns.add_known_file("/home/cpython/lib/python9.8/os.py")
803803
ns.add_known_dir("/home/cpython/lib-dynload")
804804
expected = dict(
805805
executable="/linkfrom/python",
@@ -811,7 +811,7 @@ def test_symlink_buildpath_macos(self):
811811
module_search_paths_set=1,
812812
module_search_paths=[
813813
"/usr/local/lib/python98.zip",
814-
"/home/cpython/Lib",
814+
"/home/cpython/lib/python9.8",
815815
"/home/cpython/build/lib.macos-9.8",
816816
],
817817
)

Modules/getpath.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@
180180
STDLIB_SUBDIR = f'{platlibdir}/python{VERSION_MAJOR}.{VERSION_MINOR}'
181181
STDLIB_LANDMARKS = [f'{STDLIB_SUBDIR}/os.py', f'{STDLIB_SUBDIR}/os.pyc']
182182
PLATSTDLIB_LANDMARK = f'{platlibdir}/python{VERSION_MAJOR}.{VERSION_MINOR}/lib-dynload'
183-
BUILDSTDLIB_LANDMARKS = ['Lib/os.py']
183+
BUILDSTDLIB_LANDMARKS = [f'lib/python{VERSION_MAJOR}.{VERSION_MINOR}/os.py']
184184
VENV_LANDMARK = 'pyvenv.cfg'
185185
ZIP_LANDMARK = f'{platlibdir}/python{VERSION_MAJOR}{VERSION_MINOR}.zip'
186186
DELIM = ':'
@@ -510,10 +510,14 @@ def search_up(prefix, *landmarks, test=isfile):
510510
else:
511511
build_stdlib_prefix = search_up(build_prefix, *BUILDSTDLIB_LANDMARKS)
512512
# Always use the build prefix for stdlib
513+
if os_name == 'nt':
514+
lib = 'Lib'
515+
else:
516+
lib = f'lib/python{VERSION_MAJOR}.{VERSION_MINOR}'
513517
if build_stdlib_prefix:
514-
stdlib_dir = joinpath(build_stdlib_prefix, 'Lib')
518+
stdlib_dir = joinpath(build_stdlib_prefix, lib)
515519
else:
516-
stdlib_dir = joinpath(build_prefix, 'Lib')
520+
stdlib_dir = joinpath(build_prefix, lib)
517521
# Only use the build prefix for prefix if it hasn't already been set
518522
if not prefix:
519523
prefix = build_stdlib_prefix

0 commit comments

Comments
 (0)