XX-net/XX-Net · error

update %s fail. setup script %s not exist

Error message

update %s fail. setup script %s not exist

What it means

update.install_module verified the downloaded module version directory exists but found no setup.py inside it, so the update for that module is aborted (function returns without installing). The version in config may have been checked already, but installation is skipped.

Source

Thrown at code/default/launcher/update.py:138

        return False


def install_module(module, new_version):
    import module_init
    import os, subprocess, sys

    current_path = os.path.dirname(os.path.abspath(__file__))
    new_module_version_path = os.path.abspath(os.path.join(current_path, os.pardir, os.pardir, module, new_version))

    # check path exist
    if not os.path.isdir(new_module_version_path):
        xlog.error("install module %s dir %s not exist", module, new_module_version_path)
        return

    # call setup.py
    setup_script = os.path.join(new_module_version_path, "setup.py")
    if not os.path.isfile(setup_script):
        xlog.warn("update %s fail. setup script %s not exist", module, setup_script)
        return

    config.current_version = str(new_version)
    config.save()

    if module == "launcher":
        module_init.stop_all()
        import web_control
        web_control.stop()

        subprocess.Popen([sys.executable, setup_script], shell=False)

        os._exit(0)

    else:
        xlog.info("Setup %s version %s ...", module, new_version)
        try:
            module_init.stop(module)

View on GitHub (pinned to cfa5bc17b6)

Solutions

  1. Delete the partially extracted module version directory and re-trigger the update/download
  2. Verify the module archive (sha1 was checked earlier) and re-extract it fully
  3. Check disk space and permissions on the modules directory
  4. If upstream package is genuinely missing setup.py, report/fetch a fixed release version
Defensive patterns

Strategy: validation

Validate before calling

import os
setup = os.path.join(new_module_version_path, 'setup.py')
if not os.path.isfile(setup):
    raise RuntimeError('incomplete module package: %s' % setup)
install_module(module, new_version)

Prevention

When it happens

Trigger: install_module(module, new_version) after a download where new_module_version_path exists but lacks setup.py — e.g. a corrupted, half-extracted, or malformed module archive that passed directory checks.

Common situations: Truncated download or interrupted unzip left an incomplete module directory; upstream release package missing setup.py; disk full during extraction.

Related errors


AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27). Data as JSON: /api/errors/a0951db23e15f2d8. Report an issue: GitHub.