@echo off chcp 65001 >nul setlocal enabledelayedexpansion title SenSu Server cd /d "%~dp0" echo 🐱 SenSu 依赖检测... echo. set PASS=0 set FAIL=0 :: ── 检查 --no-venv 参数 ── set NO_VENV=0 echo %* | findstr /i "\-\-no-venv" >nul && set NO_VENV=1 :: ── Python ── if %NO_VENV% equ 1 ( set PYTHON=python echo [INFO] --no-venv: 使用系统 Python ) else ( set PYTHON=%~dp0.venv\Scripts\python.exe if not exist "%PYTHON%" ( echo [FAIL] .venv 未创建,请先运行: python -m venv .venv ^&^& .venv\Scripts\pip install -r requirements.txt echo 或使用: start.bat --no-venv 跳过虚拟环境 pause & exit /b 1 ) ) "%PYTHON%" --version >nul 2>&1 if %errorlevel% equ 0 ( echo [OK] Python set /a PASS+=1 ) else ( echo [FAIL] Python 未安装 set /a FAIL+=1 ) :: ── Python 依赖 ── "%PYTHON%" -c "import aiohttp" >nul 2>&1 if %errorlevel% equ 0 (echo [OK] aiohttp& set /a PASS+=1) else (echo [FAIL] aiohttp 缺失& set /a FAIL+=1) "%PYTHON%" -c "import yaml" >nul 2>&1 if %errorlevel% equ 0 (echo [OK] PyYAML& set /a PASS+=1) else (echo [FAIL] PyYAML 缺失& set /a FAIL+=1) "%PYTHON%" -c "import textual" >nul 2>&1 if %errorlevel% equ 0 (echo [OK] Textual& set /a PASS+=1) else (echo [FAIL] Textual 缺失& set /a FAIL+=1) "%PYTHON%" -c "import watchdog" >nul 2>&1 if %errorlevel% equ 0 (echo [OK] watchdog& set /a PASS+=1) else (echo [FAIL] watchdog 缺失& set /a FAIL+=1) "%PYTHON%" -c "import psutil" >nul 2>&1 if %errorlevel% equ 0 (echo [OK] psutil& set /a PASS+=1) else (echo [FAIL] psutil 缺失& set /a FAIL+=1) "%PYTHON%" -c "import rich" >nul 2>&1 if %errorlevel% equ 0 (echo [OK] rich& set /a PASS+=1) else (echo [FAIL] rich 缺失& set /a FAIL+=1) :: ── 配置文件 ── if exist "config\framework\base_config.yaml" ( echo [OK] base_config.yaml set /a PASS+=1 ) else if exist "config\framework\base_config.yaml.example" ( copy "config\framework\base_config.yaml.example" "config\framework\base_config.yaml" >nul echo [OK] 从模板创建 base_config.yaml set /a PASS+=1 ) else ( echo [FAIL] 配置文件缺失 set /a FAIL+=1 ) echo. if %FAIL% gtr 0 ( echo [WARN] %FAIL% 项缺失,自动安装... "%PYTHON%" -m pip install -r requirements.txt if %errorlevel% neq 0 ( echo [FAIL] 安装失败,请手动执行: .venv\Scripts\pip install -r requirements.txt pause exit /b 1 ) echo [OK] 依赖安装完成 ) echo [OK] 所有依赖就绪 (%PASS% 项) echo. echo 🚀 启动 SenSu (无头模式)... echo Web 面板: http://0.0.0.0:4200/SenSu echo. :: 确保项目根目录在 Python 搜索路径中 (嵌入式 CPython 需要) set PYTHONPATH=%~dp0;%PYTHONPATH% "%PYTHON%" main.py --headless pause