ShopTRAINING/docs/Windows_操作指南.md
2025-07-02 11:05:23 +08:00

404 lines
9.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 药店销售预测系统 - 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上测试通过。