# run_server.py import os, sys from pathlib import Path print("[launcher] starting…") # debug: proves the file is actually running def base_dir(): if getattr(sys, "frozen", False): return Path(sys.executable).parent return Path(__file__).parent bd = base_dir() # Ensure paths exist and are visible to main.py os.environ.setdefault("KEY_FILE", str(bd / "keys.json")) os.environ.setdefault("DATA_FILE", str(bd / "data.json")) os.environ.setdefault("XML_DIR", str(bd / "out" / "clients")) os.makedirs(os.environ["XML_DIR"], exist_ok=True) try: from main import app # import FastAPI app from main.py print("[launcher] imported main.app OK") except Exception as e: print(f"[launcher] FAILED to import main.app: {e}") sys.exit(1) try: import uvicorn except Exception as e: print(f"[launcher] FAILED to import uvicorn (install it in this venv): {e}") sys.exit(1) if __name__ == "__main__": print("[launcher] running uvicorn on 0.0.0.0:8082") uvicorn.run(app, host="0.0.0.0", port=8082, log_level="info") print("[launcher] uvicorn.run returned (server stopped)") # should only print on shutdown