diff --git a/Misc/NEWS.d/next/Tests/2021-10-07-13-43-01.bpo-45402.jlQvep.rst b/Misc/NEWS.d/next/Tests/2021-10-07-13-43-01.bpo-45402.jlQvep.rst new file mode 100644 index 00000000000..d8c65530658 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-10-07-13-43-01.bpo-45402.jlQvep.rst @@ -0,0 +1,3 @@ +Fix test_tools.test_sundry() when Python is built out of tree: fix how +the freeze_modules.py tool locates the _freeze_module program. +Patch by Victor Stinner. diff --git a/Tools/scripts/freeze_modules.py b/Tools/scripts/freeze_modules.py index 36e284100ed..5c7eee42952 100644 --- a/Tools/scripts/freeze_modules.py +++ b/Tools/scripts/freeze_modules.py @@ -29,9 +29,10 @@ if sys.platform != "win32": TOOL = os.path.join(ROOT_DIR, 'Programs', '_freeze_module') if not os.path.isfile(TOOL): - # When building out of the source tree, get the tool from the current - # directory - TOOL = os.path.join('Programs', '_freeze_module') + # When building out of the source tree, get the tool from directory + # of the Python executable + TOOL = os.path.dirname(sys.executable) + TOOL = os.path.join(TOOL, 'Programs', '_freeze_module') TOOL = os.path.abspath(TOOL) if not os.path.isfile(TOOL): sys.exit("ERROR: missing _freeze_module")