diff --git a/Modules/getpath.py b/Modules/getpath.py index 20e050787700bf..2f4d635a29585c 100644 --- a/Modules/getpath.py +++ b/Modules/getpath.py @@ -773,8 +773,10 @@ def search_up(prefix, *landmarks, test=isfile): # SANITY CHECKS # ****************************************************************************** -# Warn if the standard library is missing -if not stdlib_zip or not isfile(stdlib_zip): +# Warn if the standard library is missing, unless pythonpath_was_set was set, as +# that skips parts of the stdlib directories calculation — assume the provided +# pythonpath is correct. This is how subinterpreters initialize the path for eg. +if not py_setpath and not pythonpath_was_set and (not stdlib_zip or not isfile(stdlib_zip)): home_hint = f"The Python 'home' directory was set to {home!r}, is this correct?" if not stdlib_dir or not isdir(stdlib_dir): hint = home_hint if home else f'sys.prefix is set to {prefix}, is this correct?'