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
- Delete the partially extracted module version directory and re-trigger the update/download
- Verify the module archive (sha1 was checked earlier) and re-extract it fully
- Check disk space and permissions on the modules directory
- 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
- Re-extract module archives atomically (temp dir then rename)
- Verify archive integrity (sha1 + presence of setup.py) before switching versions
- Keep free disk space during updates
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
- set version %s not exist
- time out
- get_version_fail:%s
- get update file %s fail:
- download xxnet zip fail:%s
AI-assisted analysis of XX-net/XX-Net@cfa5bc17b6 (2026-08-27).
Data as JSON: /api/errors/a0951db23e15f2d8.
Report an issue: GitHub.