gh-155254: Avoid warning about missing stdlib when using _pth files (GH-156015)

zooba <[email protected]>
Newsgroups gmane.comp.python.cvs
Message-ID <[email protected]>
https://github.com/python/cpython/commit/f8c93d43edfeaea33c5dbff20f394212cb5c157f
commit: f8c93d43edfeaea33c5dbff20f394212cb5c157f
branch: main
author: Steve Dower <[email protected]>
committer: zooba <[email protected]>
date: 2026-08-21T14:36:36+01:00
summary:

gh-155254: Avoid warning about missing stdlib when using _pth files (GH-156015)

files:
A Misc/NEWS.d/next/Core_and_Builtins/2026-08-18-14-19-51.gh-issue-155254.75TMlb.rst
M Doc/library/sys_path_init.rst
M Modules/getpath.py

diff --git a/Doc/library/sys_path_init.rst b/Doc/library/sys_path_init.rst
index e6c2cddbe84248..329e49253e91aa 100644
--- a/Doc/library/sys_path_init.rst
+++ b/Doc/library/sys_path_init.rst
@@ -105,6 +105,8 @@ Please refer to :mod:`site`'s
    mechanism, such as :mod:`venv`, that many virtual environment implementations
    follow.
 
+.. _sys-path-init-_pth-files:
+
 _pth files
 ----------
 
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-08-18-14-19-51.gh-issue-155254.75TMlb.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-08-18-14-19-51.gh-issue-155254.75TMlb.rst
new file mode 100644
index 00000000000000..4ebe0a417c3f3b
--- /dev/null
+++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-08-18-14-19-51.gh-issue-155254.75TMlb.rst
@@ -0,0 +1 @@
+Avoid warning about missing standard library when using :ref:`sys-path-init-_pth-files`.
diff --git a/Modules/getpath.py b/Modules/getpath.py
index 6199567bd777aa..c322d5c4b4c251 100644
--- a/Modules/getpath.py
+++ b/Modules/getpath.py
@@ -766,10 +766,10 @@ def search_up(prefix, *landmarks, test=isfile):
 # SANITY CHECKS
 # ******************************************************************************
 
-# 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:
+# Warn if we did a search for the standard library and couldn't find it. Never
+# show a warning if paths were provided explicitly, since we trust the caller
+# knows what they're doing even if the layout doesn't look "normal".
+if not (py_setpath or pythonpath_was_set or pth):
     home_hint = f"The Python 'home' directory was set to {home!r}, is this correct?"
     if (not stdlib_zip or not isfile(stdlib_zip)) and (not stdlib_dir or not isdir(stdlib_dir)):
         hint = home_hint if home else f'sys.prefix is set to {prefix}, is this correct?'

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.