# Backend 启动问题排查指南 ## 常见问题 ### 1. 语法错误 **错误信息**: `SyntaxError: expected 'except' or 'finally' block` **解决方法**: - 检查代码中的 `try:` 块是否都有对应的 `except` 或 `finally` - 检查缩进是否正确 - 运行 `python3 -m py_compile api/routes/trades.py` 检查语法 ### 2. 缺少依赖模块 **错误信息**: `ModuleNotFoundError: No module named 'xxx'` **解决方法**: ```bash # 激活虚拟环境 source ../.venv/bin/activate # 或 source .venv/bin/activate # 安装依赖 pip install -r requirements.txt # 或者单独安装缺失的模块 pip install python-jose[cryptography] ``` ### 3. 导入错误 **错误信息**: `ModuleNotFoundError: No module named 'api'` **解决方法**: - 确保在 `backend` 目录下运行 - 检查 `PYTHONPATH` 是否正确设置 - 使用 `cd backend && python3 -m uvicorn api.main:app` 启动 ## 排查步骤 ### 步骤 1: 检查依赖 ```bash cd backend bash check_dependencies.sh ``` ### 步骤 2: 检查语法 ```bash cd backend source ../.venv/bin/activate python3 -m py_compile api/main.py python3 -m py_compile api/routes/*.py ``` ### 步骤 3: 测试导入 ```bash cd backend source ../.venv/bin/activate python3 -c "import api.main; print('✓ 导入成功')" ``` ### 步骤 4: 查看日志 ```bash # 查看最新的错误日志 tail -50 backend/logs/api.log tail -50 backend/logs/uvicorn.log ``` ### 步骤 5: 手动启动测试 ```bash cd backend source ../.venv/bin/activate export DB_HOST=your_db_host export DB_PORT=3306 export DB_USER=your_db_user export DB_PASSWORD=your_db_password export DB_NAME=auto_trade_sys uvicorn api.main:app --host 0.0.0.0 --port 8001 --log-level info ``` ## 启动脚本 ### 开发模式(自动重载) ```bash cd backend ./start_dev.sh ``` ### 生产模式(后台运行) ```bash cd backend ./start.sh ``` ## 检查服务状态 ```bash # 检查进程 ps aux | grep uvicorn # 检查端口 lsof -i :8001 # 测试健康检查 curl http://localhost:8001/api/health ```