#!/bin/bash # # Usage: # source activate.sh # # Required: # 1) ./.venv (Python venv) # # Must be sourced if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then echo "ERROR: Please source this script: source activate.sh" >&2 exit 1 fi PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 1) venv (required) VENV_ACTIVATE="${PROJECT_ROOT}/.venv/bin/activate" if [[ -f "${VENV_ACTIVATE}" ]]; then # shellcheck disable=SC1090 source "${VENV_ACTIVATE}" ENV_KIND="venv" else echo "ERROR: No .venv found at ${VENV_ACTIVATE}" >&2 echo " - Create venv: ./scripts/create_venv.sh" >&2 return 1 fi # 如果需要加载 .env 中的环境变量 ENV_FILE="${PROJECT_ROOT}/.env" if [ -f "${ENV_FILE}" ]; then set -a # 自动导出所有变量 # NOTE: This loader tolerates comments/blank lines and strips inline comments. source <(grep -v '^#' "${ENV_FILE}" | grep -v '^$' | sed 's/#.*$//' | sed 's/\r$//') set +a # 关闭自动导出 fi echo "Environment activated (${ENV_KIND}): ${VIRTUAL_ENV:-${CONDA_DEFAULT_ENV:-unknown}}"