37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
# 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 # must succeed
|
|
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:7071")
|
|
uvicorn.run(app, host="0.0.0.0", port=8081, log_level="info")
|
|
print("[launcher] uvicorn.run returned (server stopped)") # should only print on shutdown
|