async def METHOD_NAME(
    field_set: PythonRequirementFieldSet,
    pex_env: PexEnvironment,
    python_setup: PythonSetup,
    module_mapping: ThirdPartyPythonModuleMapping,
) -> RunRequest:
    addresses = [field_set.address]
    resolve = field_set.resolve.value
    if not resolve:
        resolve = python_setup.default_resolve
    modules_for_address = _invert_module_mapping(resolve, module_mapping)
    entry_point = await _resolve_entry_point(modules_for_address, field_set)
    filename = entry_point.spec.replace(".", "__").replace(":", "___")
    pex_request = await Get(
        PexRequest,
        PexFromTargetsRequest(
            addresses,
            output_filename=f"{filename}.pex",
            internal_only=True,
            include_source_files=False,
            include_local_dists=True,
            main=entry_point,
            additional_args=("--no-strip-pex-env",),
        ),
    )
    complete_pex_environment = pex_env.in_sandbox(working_directory=None)
    venv_pex = await Get(VenvPex, VenvPexRequest(pex_request, complete_pex_environment))
    input_digest = venv_pex.digest
    extra_env = {
        **complete_pex_environment.environment_dict(python=None),
    }
    return RunRequest(
        digest=input_digest,
        args=[_in_chroot(venv_pex.pex.argv0)],
        extra_env=extra_env,
        append_only_caches=complete_pex_environment.append_only_caches,
    )