| 1234567891011121314151617181920212223242526272829303132 |
- #!/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" "$@"
|