| #!/usr/bin/env bash |
| set -euo pipefail |
|
|
| ENV_NAME="${ROUTEOPT_ENV:-routeopt-agent}" |
|
|
| ensure_deps() { |
| if conda run -n "$ENV_NAME" python -c "import gradio, requests, reportlab" >/dev/null 2>&1; then |
| echo "依赖已安装" |
| else |
| echo "安装 Python 依赖" |
| conda run -n "$ENV_NAME" python -m pip install -r requirements.txt |
| fi |
| } |
|
|
| if ! command -v conda >/dev/null 2>&1; then |
| echo "未找到 conda。请先安装 Miniconda 或 Anaconda,然后重新运行 ./run.sh" |
| exit 1 |
| fi |
|
|
| if [ -f ".env" ]; then |
| echo "加载 .env 配置" |
| set -a |
| |
| source ".env" |
| set +a |
| fi |
|
|
| CONDA_BASE="$(conda info --base)" |
| source "$CONDA_BASE/etc/profile.d/conda.sh" |
|
|
| if ! conda env list | awk '{print $1}' | grep -qx "$ENV_NAME"; then |
| echo "首次运行:创建 conda 环境 $ENV_NAME" |
| if ! conda env create -f environment.yml; then |
| echo "标准环境创建失败,尝试克隆 base 环境后用 pip 安装依赖" |
| conda create -n "$ENV_NAME" --clone base -y |
| fi |
| else |
| echo "检查 Python 依赖" |
| fi |
|
|
| ensure_deps |
|
|
| echo "启动 RouteOpt Agent" |
| conda run -n "$ENV_NAME" python app.py |
|
|