parameters: (cmd, search_path=1, verbose=0, dry_run=0, env=None)
docstring: Run another program, specified as a command list 'cmd', in a new process.
  
      'cmd' is just the argument list for the new process, ie.
      cmd[0] is the program to run and cmd[1:] are the rest of its arguments.
      There is no way to run a program with a name different from that of its
      executable.
  
      If 'search_path' is true (the default), the system's executable
      search path will be used to find the program; otherwise, cmd[0]
      must be the exact path to the executable.  If 'dry_run' is true,
      the command will not actually be run.
  
      Raise DistutilsExecError if running the program fails in any way; just
      return on success.
docstring_summary: Run another program, specified as a command list 'cmd', in a new process.
docstring_tokens: Run another program specified as a command list cmd in a new process .
function: def spawn(cmd, search_path=1, verbose=0, dry_run=0, env=None):
      """Run another program, specified as a command list 'cmd', in a new process.
  
      'cmd' is just the argument list for the new process, ie.
      cmd[0] is the program to run and cmd[1:] are the rest of its arguments.
      There is no way to run a program with a name different from that of its
      executable.
  
      If 'search_path' is true (the default), the system's executable
      search path will be used to find the program; otherwise, cmd[0]
      must be the exact path to the executable.  If 'dry_run' is true,
      the command will not actually be run.
  
      Raise DistutilsExecError if running the program fails in any way; just
      return on success.
      """
      # cmd is documented as a list, but just in case some code passes a tuple
      # in, protect our %-formatting code against horrible death
      cmd = list(cmd)
  
      log.info(subprocess.list2cmdline(cmd))
      if dry_run:
          return
  
      if search_path:
          executable = find_executable(cmd[0])
          if executable is not None:
              cmd[0] = executable
  
      env = env if env is not None else dict(os.environ)
  
      if sys.platform == 'darwin':
          from distutils.util import MACOSX_VERSION_VAR, get_macosx_target_ver
          macosx_target_ver = get_macosx_target_ver()
          if macosx_target_ver:
              env[MACOSX_VERSION_VAR] = macosx_target_ver
  
      try:
          proc = subprocess.Popen(cmd, env=env)
          proc.wait()
          exitcode = proc.returncode
      except OSError as exc:
          if not DEBUG:
              cmd = cmd[0]
          raise DistutilsExecError(
              "command %r failed: %s" % (cmd, exc.args[-1])) from exc
  
      if exitcode:
          if not DEBUG:
              cmd = cmd[0]
          raise DistutilsExecError(
                "command %r failed with exit code %s" % (cmd, exitcode))
function_tokens: def spawn ( cmd , search_path = 1 , verbose = 0 , dry_run = 0 , env = None ) : # cmd is documented as a list, but just in case some code passes a tuple # in, protect our %-formatting code against horrible death cmd = list ( cmd ) log . info ( subprocess . list2cmdline ( cmd ) ) if dry_run : return if search_path : executable = find_executable ( cmd [ 0 ] ) if executable is not None : cmd [ 0 ] = executable env = env if env is not None else dict ( os . environ ) if sys . platform == 'darwin' : from distutils . util import MACOSX_VERSION_VAR , get_macosx_target_ver macosx_target_ver = get_macosx_target_ver ( ) if macosx_target_ver : env [ MACOSX_VERSION_VAR ] = macosx_target_ver try : proc = subprocess . Popen ( cmd , env = env ) proc . wait ( ) exitcode = proc . returncode except OSError as exc : if not DEBUG : cmd = cmd [ 0 ] raise DistutilsExecError ( "command %r failed: %s" % ( cmd , exc . args [ - 1 ] ) ) from exc if exitcode : if not DEBUG : cmd = cmd [ 0 ] raise DistutilsExecError ( "command %r failed with exit code %s" % ( cmd , exitcode ) )