code: def find_executable(executable, path=None):
      """Tries to find 'executable' in the directories listed in 'path'.
  
      A string listing directories separated by 'os.pathsep'; defaults to
      os.environ['PATH'].  Returns the complete filename or None if not found.
      """
      _, ext = os.path.splitext(executable)
      if (sys.platform == "win32") and (ext != ".exe"):
          executable = executable + ".exe"
  
      if os.path.isfile(executable):
          return executable
  
      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
          # bpo-35755: Don't use os.defpath if the PATH environment variable is
          # set to an empty string
  
      # PATH='' doesn't match, whereas PATH=':' looks in the current directory
      if not path:
          return None
  
      paths = path.split(os.pathsep)
      for p in paths:
          f = os.path.join(p, executable)
          if os.path.isfile(f):
              # the file exists, we have a shot at spawn working
              return f
      return None
  
file_path: catboost/contrib/python/setuptools/py3/setuptools/_distutils/spawn.py
imports: import sys
  import os
  import subprocess
  from .errors import DistutilsExecError
  from .debug import DEBUG
  from ._log import log
label_desc: Use image node_id 2 for calling a global function with example usage: find_executable(executable, path) and returns: None, executable, None, f