code: async def install_sandboxed_update(filename, loop):
      
      log.debug("Creating virtual environment")
      venv_dir, python, venv_site_pkgs\
          = await create_virtual_environment(loop=loop)
      log.debug("Installing update server into virtual environment")
      out, err, returncode = await _install(python, filename, loop)
      if err or returncode != 0:
          log.error("Install failed: {}".format(err))
          res = {'status': 'failure', 'message': err}
      else:
          log.debug("Install successful")
          res = {'status': 'success'}
      return res, python, venv_site_pkgs, venv_dir
docs: Create a virtual environment and activate it, and then install an
      update candidate (leaves virtual environment activated)
  
      :return: a result dict and the path to python in the virtual environment