#!/usr/bin/env bash # 启动 3D 服务端(自动选用当前 conda/venv 环境的解释器,避免 PATH 缓存到系统 python)。 # # 用法: # bash viewer/backend/run.sh # 默认 127.0.0.1:5182 # bash viewer/backend/run.sh --reload # bash viewer/backend/run.sh --port 5182 set -e DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT="$(cd "$DIR/../.." && pwd)" pick_python() { if [ -n "${CONDA_PREFIX:-}" ] && [ -x "$CONDA_PREFIX/bin/python" ]; then echo "$CONDA_PREFIX/bin/python" return fi if [ -x "$ROOT/.venv/bin/python" ]; then echo "$ROOT/.venv/bin/python" return fi command -v python || command -v python3 } PY="$(pick_python)" if ! "$PY" -c "import fastapi, uvicorn" >/dev/null 2>&1; then echo "[run.sh] 解释器 $PY 缺少依赖,正在安装 requirements.txt ..." >&2 "$PY" -m pip install -r "$DIR/requirements.txt" fi exec "$PY" "$DIR/run.py" "$@"