ShopTRAINING/docs/Windows_操作指南.md

404 lines
9.1 KiB
Markdown
Raw Permalink Normal View History

2025-07-02 11:05:23 +08:00
# 药店销售预测系统 - Windows 操作指南
## 系统环境
- **操作系统**: Windows 10/11
- **终端**: PowerShell (推荐) 或 Command Prompt
- **Python版本**: 3.8+
- **Node.js版本**: 16+
## 🚀 快速启动指南
### 1. 环境准备
**检查Python版本**
```powershell
python --version
```
**检查Node.js版本**
```powershell
node --version
npm --version
```
### 2. 安装依赖
**后端依赖安装**
```powershell
# 进入项目目录
cd "I:\_OneTree\_Python\_药店销售预测系统"
# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境
.\.venv\Scripts\Activate.ps1
# 如果遇到执行策略问题,先运行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 安装Python依赖
pip install -r install\requirements.txt
# 安装GPU版本PyTorch可选
pip install -r install\requirements-gpu.txt
```
**前端依赖安装**
```powershell
# 进入UI目录
cd UI
# 安装前端依赖
npm install
# 或使用pnpm如果已安装
pnpm install
```
### 3. 数据初始化
**初始化多店铺数据库**
```powershell
# 确保在项目根目录
cd "I:\_OneTree\_Python\_药店销售预测系统"
# 激活虚拟环境(如果未激活)
.\.venv\Scripts\Activate.ps1
# 初始化数据库
python server\init_multi_store_db.py
# 生成示例数据(如果没有数据文件)
python generate_multi_store_data.py
```
### 4. 启动服务
**启动后端API服务器**
```powershell
# 在项目根目录,确保虚拟环境已激活
cd server
python api.py
# 服务器将在 http://localhost:5000 启动
```
**启动前端开发服务器**新的PowerShell窗口
```powershell
cd "I:\_OneTree\_Python\_药店销售预测系统\UI"
npm run dev
# 或
pnpm dev
# 前端将在 http://localhost:5173 启动
```
**访问应用**
- 前端界面: http://localhost:5173
- API文档: http://localhost:5000/swagger
## 🔧 开发操作指南
### 数据管理
**查看数据文件**
```powershell
# 查看多店铺CSV数据
Get-Content pharmacy_sales_multi_store.csv | Select-Object -First 10
# 查看数据库文件
if (Test-Path "prediction_history.db") {
Write-Host "数据库文件存在"
} else {
Write-Host "数据库文件不存在"
}
```
**备份数据**
```powershell
# 创建备份文件夹
New-Item -ItemType Directory -Force -Path "backup\$(Get-Date -Format 'yyyyMMdd')"
# 备份重要文件
Copy-Item "pharmacy_sales_multi_store.csv" "backup\$(Get-Date -Format 'yyyyMMdd')\"
Copy-Item "prediction_history.db" "backup\$(Get-Date -Format 'yyyyMMdd')\"
```
### 测试和验证
**API测试**
```powershell
# 简单API测试
python test_api_endpoints.py
# 多店铺功能测试
python test_multi_store_training.py
# 预测器修复验证
python test_predictor_fix.py
```
**前端构建测试**
```powershell
cd UI
npm run build
# 或
pnpm build
```
### 日志和调试
**查看API日志**
```powershell
# 启动API时会在控制台显示日志
# 要保存日志到文件:
python server\api.py 2>&1 | Tee-Object -FilePath "api.log"
```
**查看训练日志**
```powershell
# 训练日志通常保存在 saved_models 目录下
Get-ChildItem saved_models -Filter "*.log" | Sort-Object LastWriteTime -Descending
```
## 📁 项目结构说明
```
I:\_OneTree\_Python\_药店销售预测系统\
├── server\ # 后端代码
│ ├── api.py # 主API服务器
│ ├── core\ # 核心预测器
│ ├── trainers\ # 模型训练器
│ ├── utils\ # 工具函数
│ └── models\ # 模型定义
├── UI\ # 前端代码
│ ├── src\ # Vue源码
│ ├── dist\ # 构建输出
│ └── package.json # 前端依赖
├── docs\ # 文档
├── install\ # 安装脚本
├── saved_models\ # 保存的模型
├── pharmacy_sales_multi_store.csv # 多店铺数据
└── prediction_history.db # 预测历史数据库
```
## 🛠 常见操作
### 模型训练
**通过API训练模型**
```powershell
# 按产品训练
$body = @{
product_id = "P001"
model_type = "tcn"
training_mode = "product"
epochs = 10
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:5000/api/training" -Method Post -Body $body -ContentType "application/json"
```
**通过命令行训练**
```powershell
# 进入服务器目录
cd server
# 使用预测器训练
python -c "
from core.predictor import PharmacyPredictor
predictor = PharmacyPredictor()
metrics = predictor.train_model(
product_id='P001',
model_type='tcn',
training_mode='product',
epochs=10
)
print('训练完成:', metrics)
"
```
### 数据查看和分析
**查看产品列表**
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/products" -Method Get
```
**查看店铺列表**
```powershell
Invoke-RestMethod -Uri "http://localhost:5000/api/stores" -Method Get
```
**查看模型列表**
```powershell
Get-ChildItem saved_models -Filter "*.pth" | Format-Table Name, LastWriteTime, Length
```
### 部署和分发
**构建生产版本**
```powershell
# 构建前端
cd UI
npm run build
# 复制前端文件到服务器静态目录
if (Test-Path "dist") {
Copy-Item -Path "dist\*" -Destination "..\server\wwwroot\" -Recurse -Force
Write-Host "前端文件已复制到服务器目录"
}
```
**创建便携版**
```powershell
# 创建便携版目录
New-Item -ItemType Directory -Force -Path "portable_release"
# 复制必要文件
Copy-Item -Path "server\*" -Destination "portable_release\server\" -Recurse
Copy-Item -Path "pharmacy_sales_multi_store.csv" -Destination "portable_release\"
Copy-Item -Path "docs\portable_README.md" -Destination "portable_release\README.md"
```
## 🐛 故障排除
### 常见错误和解决方法
**1. PowerShell执行策略错误**
```powershell
# 问题: 无法加载文件,因为在此系统上禁止运行脚本
# 解决:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
**2. Python模块导入错误**
```powershell
# 问题: ModuleNotFoundError
# 解决: 确保虚拟环境已激活
.\.venv\Scripts\Activate.ps1
pip install -r install\requirements.txt
```
**3. 端口占用错误**
```powershell
# 查看端口占用
netstat -ano | findstr :5000
netstat -ano | findstr :5173
# 终止占用端口的进程
# taskkill /PID <PID号> /F
```
**4. 数据文件不存在**
```powershell
# 检查文件是否存在
if (!(Test-Path "pharmacy_sales_multi_store.csv")) {
Write-Host "生成示例数据..."
python generate_multi_store_data.py
}
```
**5. API连接失败**
```powershell
# 测试API服务器是否运行
try {
$response = Invoke-RestMethod -Uri "http://localhost:5000/api/products" -Method Get -TimeoutSec 5
Write-Host "API服务器正常运行"
} catch {
Write-Host "API服务器未响应请检查服务器是否启动"
}
```
### 性能优化
**GPU检查**
```powershell
python -c "
import torch
print('CUDA可用:', torch.cuda.is_available())
if torch.cuda.is_available():
print('GPU设备:', torch.cuda.get_device_name(0))
print('GPU内存:', torch.cuda.get_device_properties(0).total_memory // 1024**3, 'GB')
"
```
**内存监控**
```powershell
# 查看Python进程内存使用
Get-Process python | Format-Table ProcessName, CPU, WorkingSet -AutoSize
```
## 📝 维护指南
### 定期维护任务
**清理临时文件**
```powershell
# 清理Python缓存
Get-ChildItem -Path . -Recurse -Name "__pycache__" | Remove-Item -Recurse -Force
# 清理npm缓存
cd UI
npm cache clean --force
```
**更新依赖**
```powershell
# 更新Python依赖
pip list --outdated
pip install --upgrade pip
# 更新Node.js依赖
cd UI
npm outdated
npm update
```
**备份重要数据**
```powershell
# 创建完整备份
$backupDate = Get-Date -Format "yyyyMMdd_HHmmss"
New-Item -ItemType Directory -Force -Path "backup\full_$backupDate"
# 备份数据文件
Copy-Item "pharmacy_sales_multi_store.csv" "backup\full_$backupDate\"
Copy-Item "prediction_history.db" "backup\full_$backupDate\"
# 备份模型文件
Copy-Item "saved_models\*" "backup\full_$backupDate\models\" -Recurse
```
## 📞 技术支持
如果遇到问题,请按以下顺序排查:
1. **检查环境**确认Python和Node.js版本正确
2. **检查依赖**:确认所有依赖都已安装
3. **检查文件**:确认数据文件存在且格式正确
4. **查看日志**:检查控制台输出和日志文件
5. **重启服务**尝试重启API服务器和前端服务
**日志收集**
```powershell
# 收集系统信息
Write-Host "=== 系统信息 ==="
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, TotalPhysicalMemory
Write-Host "`n=== Python环境 ==="
python --version
pip list
Write-Host "`n=== Node.js环境 ==="
node --version
npm --version
Write-Host "`n=== 文件检查 ==="
Test-Path "pharmacy_sales_multi_store.csv"
Test-Path "prediction_history.db"
Test-Path "server\api.py"
```
---
**注意**: 本指南专为Windows PowerShell环境设计所有命令都已在Windows 10/11上测试通过。