code: func fillRuntime(c context.Context, i *python.Interpreter, r *vpython.Runtime) error {
  	// JSON fields correspond to "vpython.Runtime" fields.
  	const script = `` +
  		`import json, sys;` +
  		`json.dump({` +
  		`'path': sys.executable,` +
  		`'prefix': sys.prefix,` +
  		`}, sys.stdout)`
  
  	// Probe the runtime information.
  	var stdout, stderr bytes.Buffer
  	cmd := i.IsolatedCommand(c, python.CommandTarget{Command: script})
  	cmd.Stdout = &stdout
  	if err := cmd.Run(); err != nil {
  		logging.WithError(err).Errorf(c, "Failed to get runtime information:\n%s", stderr.Bytes())
  		return errors.Annotate(err, "failed to get runtime information").Err()
  	}
  
  	if err := json.Unmarshal(stdout.Bytes(), r); err != nil {
  		return errors.Annotate(err, "could not unmarshal output: %q", stdout.Bytes()).Err()
  	}
  
  	// "sys.executable" is allowed to be None. If it is, use the Python
  	// interpreter path.
  	//
  	// Resolve it to an absolute path. "sys.executable" says that it must be one,
  	// but we'll enforce it just to be sure.
  	if r.Path == "" {
  		r.Path = i.Python
  	}
  	if err := filesystem.AbsPath(&r.Path); err != nil {
  		return err
  	}
  
  	var err error
  	if r.Hash, err = hashPath(r.Path); err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // fillRuntime returns the runtime information of the specified interpreter.
  //
  // Identifying this information requires the interpreter to be run.