From f45c3cc90f6f333e8293f58f5380fa4877a16189 Mon Sep 17 00:00:00 2001 From: Rifqi Date: Tue, 2 Jun 2026 18:40:46 +0700 Subject: [PATCH] macOS: use venv Python for setup and launch After the venv is created, $PY still points to the Homebrew/system interpreter, which triggers PEP 668 (externally-managed-environment) on modern macOS. Introduce VENV_PY pointing at the venv's own interpreter and use it for all pip installs and the final uvicorn launch. Co-authored-by: Claude Sonnet 4.6 --- start-macos.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/start-macos.sh b/start-macos.sh index d8bc3f3..966989d 100755 --- a/start-macos.sh +++ b/start-macos.sh @@ -117,10 +117,11 @@ if [ ! -d venv ]; then echo "▶ Creating Python environment…" "$PY" -m venv venv fi +VENV_PY="./venv/bin/python3" echo "▶ Installing Python packages (first run downloads a few — can take a few minutes)…" -"$PY" -m pip install --quiet --upgrade pip +"$VENV_PY" -m pip install --quiet --upgrade pip # Not --quiet: this is the slow step, so show progress (and any real errors). -"$PY" -m pip install -r requirements.txt +"$VENV_PY" -m pip install -r requirements.txt # 4. First-run setup: creates data dirs and prints an initial admin password # the first time (idempotent — does nothing if already set up). Suppress its @@ -179,4 +180,4 @@ if [ -n "$TAILSCALE_URL" ]; then fi echo " (this takes a few seconds; press Ctrl+C here to stop)" echo -"$PY" -m uvicorn app:app --host "$HOST" --port "$PORT" +"$VENV_PY" -m uvicorn app:app --host "$HOST" --port "$PORT"