#!/bin/bash set -euo pipefail BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$BASE_DIR" ENV_FILE="${ENV_FILE:-$BASE_DIR/.env.local}" HOST="${HOST:-127.0.0.1}" PORT="${PORT:-8000}" APP_MODULE="${APP_MODULE:-app.main:app}" VENV_DIR="${VENV_DIR:-$BASE_DIR/venv}" UVICORN_BIN="${UVICORN_BIN:-$VENV_DIR/bin/uvicorn}" if [ ! -f "$ENV_FILE" ]; then echo "[ERROR] 本地环境文件不存在: $ENV_FILE" echo "请先创建并填写 backend/.env.local" exit 1 fi if [ ! -x "$UVICORN_BIN" ]; then echo "[ERROR] 未找到 uvicorn: $UVICORN_BIN" echo "请先创建虚拟环境并安装依赖:" echo " python3 -m venv venv" echo " source venv/bin/activate" echo " pip install -r requirements.txt" exit 1 fi echo "[INFO] 启动本地开发服务" echo "[INFO] ENV_FILE=$ENV_FILE" echo "[INFO] URL=http://$HOST:$PORT" ENV_FILE="$ENV_FILE" "$UVICORN_BIN" "$APP_MODULE" --host "$HOST" --port "$PORT" --reload --log-level debug