On 10/12/22, Weatherby,Gerard <gweathe...@uchc.edu> wrote:
>
> When no path is specified, the results of
> os.environ()<https://docs.python.org/3/library/os.html#os.environ> are used,
> returning either the “PATH” value or a fallback of
> os.defpath<https://docs.python.org/3/library/os.html#os.defpath>.

The documentation is out of sync with what the code actually does.
os.defpath is hard coded in posixpath and ntpath, but shutil.which()
actually prefers to query the system's default path to use via
os.confstr(), if it's supported:

    if path is None:
        path = os.environ.get("PATH", None)
        if path is None:
            try:
                path = os.confstr("CS_PATH")
            except (AttributeError, ValueError):
                # os.confstr() or CS_PATH is not available
                path = os.defpath

As documented by POSIX, the CS_PATH string "can be used as a value of
the PATH environment variable that accesses all of the standard
utilities of POSIX.1-2017, that are provided in a manner accessible
via the exec family of functions".

https://pubs.opengroup.org/onlinepubs/9699919799/functions/confstr.html
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to