From 1cf80ea7ea6a6d02a26d3b34a03a28542908db5d Mon Sep 17 00:00:00 2001 From: serversdown Date: Thu, 11 Jun 2026 01:16:30 +0000 Subject: [PATCH] fix(portal): portal_admin.py runnable as a script, not just -m `python3 backend/portal_admin.py` set sys.path[0] to backend/, hiding the `backend` package and breaking `from backend.database import ...`. Insert the project root on sys.path so the documented script invocation works. Co-Authored-By: Claude Opus 4.8 --- backend/portal_admin.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/portal_admin.py b/backend/portal_admin.py index c69e4db..2d8b346 100644 --- a/backend/portal_admin.py +++ b/backend/portal_admin.py @@ -31,6 +31,10 @@ import secrets import argparse from datetime import datetime +# Allow `python3 backend/portal_admin.py ...` (which puts backend/ on sys.path[0], +# hiding the `backend` package) in addition to `python3 -m backend.portal_admin`. +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + from backend.database import SessionLocal from backend.models import Client, ClientAccessToken, Project from backend.portal_auth import hash_token