104 lines
2.0 KiB
Markdown
104 lines
2.0 KiB
Markdown
# 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
|
|
```
|