code: func (i *Interpreter) GetVersion(c context.Context) (v Version, err error) {
  	i.cachedVersionMu.Lock()
  	defer i.cachedVersionMu.Unlock()
  
  	// Check again, under write-lock.
  	if i.cachedVersion != nil {
  		v = *i.cachedVersion
  		return
  	}
  
  	cmd := i.IsolatedCommand(c, CommandTarget{
  		"import platform, sys; sys.stdout.write(platform.python_version())",
  	})
  
  	out, err := cmd.Output()
  	if err != nil {
  		err = errors.Annotate(err, "").Err()
  		return
  	}
  
  	if v, err = ParseVersion(string(out)); err != nil {
  		return
  	}
  	if v.IsZero() {
  		err = errors.Reason("unknown version output").Err()
  		return
  	}
  
  	i.cachedVersion = &v
  	return
  }
docs: // GetVersion runs the specified Python interpreter to extract its version
  // from `platform.python_version` and maps it to a known specification verison.