日期: 2025-01-XX
修复范围: 所有启动和停止服务的批处理文件
问题:
- PYTHONPATH使用相对路径
%~dp0,可能导致路径问题 - 路径没有使用引号,可能包含空格时出错
- Python可执行文件路径没有引号
修复:
- ✅ 使用绝对路径
PROJECT_ROOT - ✅ 所有路径使用引号包裹
- ✅ Python可执行文件路径使用引号
- ✅ 添加项目根目录显示
修改内容:
REM 修复前
set PYTHONPATH=%~dp0
start ... cmd /k "cd /d %~dp0 && set PYTHONPATH=%~dp0 && python ..."
REM 修复后
set "PROJECT_ROOT=%~dp0"
set "PROJECT_ROOT=%PROJECT_ROOT:~0,-1%"
set "PYTHONPATH=%PROJECT_ROOT%"
start ... cmd /k "cd /d \"%PROJECT_ROOT%\" && set PYTHONPATH=\"%PROJECT_ROOT%\" && \"%PYTHON_AIDDTRAIN%\" ..."问题:
- conda activate在cmd /k中可能不会持久化
- PYTHONPATH没有正确设置
- 没有查找conda环境
修复:
- ✅ 直接使用conda环境的python.exe完整路径
- ✅ 正确设置PROJECT_ROOT和PYTHONPATH
- ✅ 自动查找conda环境(用户目录和ProgramData)
- ✅ 显示项目根目录和FlashDock目录
修改内容:
REM 修复前
conda activate flash_dock
python -m streamlit run FlashDock.py --server.port 8501
REM 修复后
if exist "C:\ProgramData\Anaconda3\envs\flash_dock\python.exe" (
set PYTHON_FLASHDOCK=C:\ProgramData\Anaconda3\envs\flash_dock\python.exe
)
"%PYTHON_FLASHDOCK%" -m streamlit run FlashDock.py --server.port 8501问题:
- 使用conda activate可能不稳定
- PYTHONPATH设置不一致
- 路径引号问题
修复:
- ✅ 使用conda环境的python.exe完整路径
- ✅ 统一PYTHONPATH设置方式
- ✅ 所有路径使用引号
- ✅ 添加conda环境自动查找
- ✅ 所有路径使用绝对路径
- ✅ 路径包含空格时正确处理
- ✅ PROJECT_ROOT正确计算和显示
- ✅ 自动查找conda环境
- ✅ 支持用户目录和ProgramData目录
- ✅ 直接使用python.exe完整路径,避免conda activate问题
- ✅ 统一使用绝对路径
- ✅ 在所有启动命令中正确设置
- ✅ 使用引号包裹避免空格问题
# 双击运行或命令行执行
start_all_services.bat检查:
- 三个服务窗口是否正常打开
- 服务是否正常启动
- 是否有错误信息
restart_services_safe.bat检查:
- 旧服务是否正常停止
- 新服务是否正常启动
- 端口是否正常释放和占用
start_registry_safe.bat
start_compass_safe.bat
cd FLASH_DOCK-main
start_flashdock_fixed.bat检查:
- 每个服务是否能单独启动
- PYTHONPATH是否正确
- 是否有导入错误
原因: PYTHONPATH未正确设置
解决:
- 检查批处理文件中的PROJECT_ROOT是否正确
- 检查PYTHONPATH是否包含项目根目录
- 查看服务窗口中的错误信息
原因: conda环境路径不正确
解决:
- 检查conda环境是否存在:
dir "%USERPROFILE%\anaconda3\envs\AIDDTRAIN" dir "C:\ProgramData\Anaconda3\envs\AIDDTRAIN"
- 如果路径不同,修改批处理文件中的路径
- 或使用默认python(如果已安装所需包)
解决:
# 停止所有服务
stop_all.bat
# 或使用Python脚本
python stop_all_services.py已修复: 所有路径现在都使用引号包裹
修复的批处理文件:
- ✅
start_all_services.bat- 主启动脚本 - ✅
FLASH_DOCK-main/start_flashdock_fixed.bat- FLASH-DOCK启动脚本 - ✅
restart_services_safe.bat- 重启脚本
其他批处理文件(已检查,无需修改):
start_registry_safe.bat- 已正确start_compass_safe.bat- 已正确stop_all.bat- 已正确
方式1: 一键启动(最简单)
start_all_services.bat方式2: 安全重启(推荐)
restart_services_safe.bat方式3: 单独启动(用于调试)
start_registry_safe.bat
# 等待5秒
start_compass_safe.bat
# 等待5秒
cd FLASH_DOCK-main
start_flashdock_fixed.bat启动后,运行以下命令验证:
python test_flashdock_chrome.py或访问:
- 服务注册中心: http://localhost:8500/health
- COMPASS服务: http://localhost:8080/health
- FLASH-DOCK前端: http://localhost:8501
所有批处理文件已修复,主要改进:
- ✅ 路径处理更可靠(绝对路径+引号)
- ✅ Python环境查找更智能(自动查找conda)
- ✅ PYTHONPATH设置统一且正确
- ✅ 避免conda activate问题(直接使用python.exe)
现在可以正常使用批处理文件启动服务了!