加入了 GVSDSDK 模块,进行了 QModel 兼容层的尝试,生产环境可用

This commit is contained in:
2026-06-16 00:13:10 +08:00
parent 9d9cfa53a4
commit 63e0f4edfc
68 changed files with 10256 additions and 1143 deletions

167
gvsdsdk/INSTALL.md Normal file
View File

@@ -0,0 +1,167 @@
# 双端依赖安装指南
> 本节描述如何让 `gvsds` 主服务器和 `ATestCServer` 等子服务器**共享同一版本**的 `gvsdsdk`。
## 1. 版本一致性原则
- **同一代码**:双端导入的是**同一份 Python 文件**(物理位置 `D:\SMANAGE\gvsdsdk`
- **同一版本**:通过 `pyproject.toml` 中的 `version = "1.0.0"` 锁定
- **启动校验**:双端启动时调用 `gvsdsdk.check_min_version("1.0.0")`,版本不符会打 WARNING 日志
- **热重载支持**:直接编辑 `D:\SMANAGE\gvsdsdk` 下的文件即可生效(无需 reinstall
## 2. 三种安装方式
### 方式 APYTHONPATH 方式(推荐开发用)
```bash
# 启动 gvsds
cd D:\SMANAGE\gvsds
set PYTHONPATH=D:\SMANAGE\gvsds;D:\SMANAGE\gvsdsdk
python manage.py runserver
# 启动 ATestCServer
cd D:\SMANAGE\ATestCServer
set PYTHONPATH=D:\SMANAGE\ATestCServer;D:\SMANAGE\gvsdsdk
python manage.py runserver 0.0.0.0:25080
```
`manage.py``settings.py` 内已自动 `sys.path.append(...)`,无需手动设置。
### 方式 B可编辑 pip 安装(推荐开发用,自动同步)
```bash
# 全局安装一次即可,所有项目共享
pip install -e D:\SMANAGE\gvsdsdk
# 验证
pip show gvsdsdk
# Name: gvsdsdk
# Version: 1.0.0
# Location: D:\SMANAGE\gvsdsdk
```
### 方式 C路径式 requirements 固定(推荐生产/部署)
`gvsds/requirements.txt`
```
gvsdsdk==1.0.0
```
`ATestCServer/requirements.txt`
```
gvsdsdk==1.0.0
```
部署时 `pip install -r requirements.txt` 会自动从 PyPI 拉取对应版本(或私有源)。
## 3. 启动时的版本校验日志
**正常启动**(两端版本一致):
```
gvsds 端:
[INFO] gvsds.startup: [SDK] 加载: v1.0.0 @ D:\SMANAGE\gvsdsdk
[INFO] gvsds.startup: [SDK] OK: SDK 1.0.0 >= 1.0.0
ATestCServer 端:
[INFO] apps: [SDK] 加载: v1.0.0 @ D:\SMANAGE\gvsdsdk
[INFO] apps: [SDK] OK: SDK 1.0.0 >= 1.0.0
```
**版本不一致**(双端版本不同):
```
[WARN] gvsds.startup: [SDK] 版本不符FAIL: SDK 0.9.0 < 1.0.0 (required)。双端 gvsdsdk 版本必须一致!
```
## 4. CLI 验证工具
```bash
# 默认:显示简要信息
python -m gvsdsdk
# 仅版本号(适合脚本中调用)
python -m gvsdsdk --version
# 1.0.0
# 详细信息
python -m gvsdsdk --info
# GVS-DSDK Version Information:
# Version : 1.0.0
# Major : 1
# Minor : 0
# Patch : 0
# Prerelease :
# Location : D:\SMANAGE\gvsdsdk
# Python : 3.12.0
# Platform : Windows-10-...
# Machine : AMD64
# 最低版本检查CI 友好)
python -m gvsdsdk --check 1.0.0
# OK: SDK 1.0.0 >= 1.0.0 (返回 0)
python -m gvsdsdk --check 2.0.0
# FAIL: SDK 1.0.0 < 2.0.0 (required) (返回 1)
# 列出所有公开符号
python -m gvsdsdk --symbols
# 测试连通性
python -m gvsdsdk --ping
# Pong — SDK 1.0.0 ready at D:\SMANAGE\gvsdsdk
# 23 symbols available (lazy)
```
## 5. 升级 SDK 版本
当需要发布新版本时:
1. **修改 `D:\SMANAGE\gvsdsdk\__init__.py`**
```python
VERSION_MAJOR = 1
VERSION_MINOR = 1 # 升级
VERSION_PATCH = 0
```
2. **修改 `D:\SMANAGE\gvsdsdk\pyproject.toml`**
```toml
[project]
version = "1.1.0"
```
3. **同步更新双端 `requirements.txt`**
```
gvsdsdk==1.1.0
```
4. **同步更新双端最低版本常量**
- `gvsds/settings.py:17` → `_REQUIRED_GVSDSDK = '1.1.0'`
- `ATestCServer/apps/sub_server/apps.py:12` → `REQUIRED_GVSDSDK_VERSION = '1.1.0'`
5. **重启双端** → 启动日志会报告新版本
## 6. 常见问题
| 现象 | 原因 | 解决 |
|---|---|---|
| `ImportError: No module named 'gvsdsdk'` | PYTHONPATH 未设置 | 安装 SDK 或加入路径 |
| `WARNING [SDK] 版本不符` | 双端版本不一致 | 升级较低端 |
| `WARNING [SDK] gvsdsdk 未安装` | 子服务器 PYTHONPATH 漏配 | 检查 `manage.py:5` |
| 编辑 SDK 后无变化 | 字节码缓存 | 删除 `__pycache__/` |
## 7. 跨平台路径
`pyproject.toml` 路径引用应使用 `file:///` 协议:
```toml
gvsdsdk @ file:///D:/SMANAGE/gvsdsdk ; sys_platform == "win32"
gvsdsdk @ file:///opt/gvsdsdk ; sys_platform == "linux"
gvsdsdk @ file:///usr/local/gvsdsdk ; sys_platform == "darwin"
```
或在 CI 中使用环境变量:
```bash
pip install -e "$GVS_SDK_PATH"
```