Blame view

scripts/setup_translator_venv.sh 1.21 KB
0fd2f875   tangwang   translate
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  #!/bin/bash
  #
  # Create isolated venv for translator service (.venv-translator).
  #
  set -euo pipefail
  
  PROJECT_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
  cd "${PROJECT_ROOT}"
  
  VENV_DIR="${PROJECT_ROOT}/.venv-translator"
  PYTHON_BIN="${PYTHON_BIN:-python3}"
  TMP_DIR="${TRANSLATOR_PIP_TMPDIR:-${PROJECT_ROOT}/.tmp/translator-pip}"
  
  if ! command -v "${PYTHON_BIN}" >/dev/null 2>&1; then
    echo "ERROR: python not found: ${PYTHON_BIN}" >&2
    exit 1
  fi
  
  if [[ -d "${VENV_DIR}" && ! -f "${VENV_DIR}/bin/activate" ]]; then
    echo "Found broken venv at ${VENV_DIR}, recreating..."
    rm -rf "${VENV_DIR}"
  fi
  
  if [[ ! -d "${VENV_DIR}" ]]; then
    echo "Creating ${VENV_DIR}"
    "${PYTHON_BIN}" -m venv "${VENV_DIR}"
  else
    echo "Reusing ${VENV_DIR}"
  fi
  
  mkdir -p "${TMP_DIR}"
  export TMPDIR="${TMP_DIR}"
  PIP_ARGS=(--no-cache-dir)
  
  echo "Using TMPDIR=${TMPDIR}"
  "${VENV_DIR}/bin/python" -m pip install "${PIP_ARGS[@]}" --upgrade pip wheel
  "${VENV_DIR}/bin/python" -m pip install "${PIP_ARGS[@]}" -r requirements_translator_service.txt
  
  echo
  echo "Done."
  echo "Translator venv: ${VENV_DIR}"
  echo "Download local models: ./.venv-translator/bin/python scripts/download_translation_models.py --all-local"
  echo "Start service: ./scripts/start_translator.sh"