def METHOD_NAME(pgo_filename):
    # Execute with full path as the process name, so it can find itself and its
    # libraries.
    args = [sys.executable, sys.executable]
    if sys.version_info >= (3, 7) and sys.flags.utf8_mode:
        args += ["-X", "utf8"]
    if "nuitka.__main__" in sys.modules:
        our_filename = sys.modules["nuitka.__main__"].__file__
    else:
        our_filename = sys.modules["__main__"].__file__
    args += ["-S", our_filename]
    os.environ["NUITKA_BINARY_NAME"] = sys.modules["__main__"].__file__
    os.environ["NUITKA_PACKAGE_HOME"] = os.path.dirname(
        os.path.abspath(sys.modules["nuitka"].__path__[0])
    )
    if pgo_filename is not None:
        args.append("--pgo-python-input=%s" % pgo_filename)
    else:
        os.environ["NUITKA_SYS_PREFIX"] = sys.prefix
    # Same arguments as before.
    args += sys.argv[1:]
    from nuitka.importing.PreloadedPackages import (
        detectPreLoadedPackagePaths,
        detectPthImportedPackages,
    )
    os.environ["NUITKA_NAMESPACES"] = repr(detectPreLoadedPackagePaths())
    if "site" in sys.modules:
        site_filename = sys.modules["site"].__file__
        if site_filename.endswith(".pyc"):
            site_filename = site_filename[:-4] + ".py"
        os.environ["NUITKA_SITE_FILENAME"] = site_filename
        # Note: As side effect, this might modify the "sys.path" too.
        os.environ["NUITKA_PTH_IMPORTED"] = repr(detectPthImportedPackages())
    os.environ["NUITKA_PYTHONPATH"] = repr(sys.path)
    # In some environments, initial "sys.path" does not contain enough to load
    # "ast" module, which however we use to decode "NUITKA_PYTHONPATH", this
    # helps solve the chicken and egg problem.
    import ast
    os.environ["NUITKA_PYTHONPATH_AST"] = os.path.dirname(ast.__file__)
    if sys.flags.no_site:
        os.environ["NUITKA_NOSITE_FLAG"] = "1"
    os.environ["PYTHONHASHSEED"] = "0"
    os.environ["NUITKA_REEXECUTION"] = "1"
    # Does not return:
    callExecProcess(args)