Files
Django/gvsdsdk/INSTALL.md

168 lines
4.2 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.
# 双端依赖安装指南
> 本节描述如何让 `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"
```