核心用法
Python HarmonyOS 兼容性检测器是一款专为鸿蒙生态设计的自动化工具,主要功能包括:
1. 多源下载与检测
- 优先从 GitHub 获取源码,回退至 PyPI
- 自动扫描 Windows 专属依赖(win32api、pythoncom、pywin32、ctypes.windll 等)
- 发现 Windows 依赖即判定为不兼容,跳过测试环节
2. 智能测试执行
- 使用 pytest 执行单元测试,支持单包检测与批量并行(默认 4 workers,可调至 8+)
- 从 requirements.txt 批量导入待测包
- 单测用例级报告,区分环境错误(权限、临时目录)与代码错误(API 不兼容)
3. 分级兼容判定
| 状态 | 标准 |
|------|------|
| ✅ Compatible | 安装成功 + 有效通过率 ≥80% + 无 Windows 依赖 |
| ⚠️ Partial | 安装成功 + 有效通过率 50-79% |
| ❌ Incompatible | 安装失败 / 通过率 <50% / 检测到 Windows 依赖 |
输出格式:Markdown 可视化报告 + JSON 机器可读格式,时间戳采用东八区时间。
显著优点
- 检测效率高:并行架构支持批量验证,适合 CI/CD 集成
- 误判率低:明确区分环境错误与真实代码问题,避免无效告警
- 生态针对性强:专为鸿蒙 NEXT 的严格安全策略设计,识别传统 Windows/macOS/X11 依赖
- 可追溯性:
--keep-source保留源码供人工复核 - 已知兼容库参考:内置 numpy(88.9%)、requests、pandas、flask 等验证案例
潜在局限
- 二进制依赖盲区:含 C 扩展的包可能编译失败但未计入"代码错误"
- 测试覆盖依赖:无单元测试的包无法评估真实运行时兼容性
- 网络依赖:源码下载需外网访问,离线环境受限
- 鸿蒙 NEXT 特殊策略:部分系统级调用在纯血鸿蒙上可能额外受限,工具无法完全模拟
- 可选系统库缺失:部分失败源于未安装的 Linux 系统依赖,非 Python 层问题
适合人群
- 计划将 Python 项目迁移至鸿蒙平台的开发者
- 运维团队进行部署前依赖风险评估
- 企业 IT 制定内部 Python 包白名单
- CI/CD 流水线集成兼容性门禁
常规风险
| 风险类型 | 说明 | 缓解建议 |
|----------|------|----------|
| 误报风险 | 网络测试、可选依赖缺失导致失败 | 多次运行 + 人工复核 `--keep-source` 源码 |
| 漏报风险 | 无测试包直接显示"兼容" | 结合运行时手动验证关键路径 |
| 安全策略差异 | 纯血鸿蒙 NEXT 额外限制未完全覆盖 | 实际设备补充验证 |
| 权限残留 | pytest 临时目录未清理 | 定期执行 `rm -rf pytest-of-*` |