🔍 核心机关与修改指南
🔐 国密 gmssl 检查 SM4 传输必用
PrimeHub 市场接口全靠国密 SM4-CBC 加密,缺了 gmssl 寸步难行,脚本第一时间帮你查清。
🌐 免登录云端探针 search 点歌
直接实弹调用 primehub_publish.py search 点歌,一把验证本机 curl 与云端 SM4 解密全链路畅通!
💻 完整源码与配置内容(共 43 行 · 支持行号定位与一键复制)
| 1 | #!/usr/bin/env python3 |
| 2 | """本机开发环境与 PrimeHub 技能市场连通性一键预检脚本(纯 Python 跨平台版)。""" |
| 3 | |
| 4 | import importlib.metadata |
| 5 | import shutil |
| 6 | import subprocess |
| 7 | import sys |
| 8 | from pathlib import Path |
| 9 | |
| 10 | TOOLS_ROOT = Path(__file__).resolve().parent.parent |
| 11 | PUBLISH_SCRIPT = TOOLS_ROOT / "primehub_dev_kit/primehub_publish.py" |
| 12 | |
| 13 | |
| 14 | def main() -> int: |
| 15 | print(f"Python: {sys.version.split()[0]} ({sys.executable})") |
| 16 | try: |
| 17 | gmssl_ver = importlib.metadata.version("gmssl") |
| 18 | print(f"gmssl: {gmssl_ver}") |
| 19 | except importlib.metadata.PackageNotFoundError: |
| 20 | print("错误:缺少 gmssl 依赖,请使用 Tools/.venv 中的 Python 运行。", file=sys.stderr) |
| 21 | return 1 |
| 22 | |
| 23 | for cmd in ("ssh", "scp", "curl"): |
| 24 | loc = shutil.which(cmd) |
| 25 | if not loc: |
| 26 | print(f"错误:未找到系统命令 {cmd}。", file=sys.stderr) |
| 27 | return 1 |
| 28 | print(f"{cmd:6s}: {loc}") |
| 29 | |
| 30 | res = subprocess.run( |
| 31 | [sys.executable, "-B", str(PUBLISH_SCRIPT), "search", "点歌"], |
| 32 | check=False, |
| 33 | ) |
| 34 | if res.returncode != 0: |
| 35 | print("错误:PrimeHub 匿名搜索连通性检查失败。", file=sys.stderr) |
| 36 | return res.returncode |
| 37 | |
| 38 | print("PREFLIGHT_OK(本机工具与 PrimeHub 网络连通正常;账号登录与真机运行请按步骤继续验收)") |
| 39 | return 0 |
| 40 | |
| 41 | |
| 42 | if __name__ == "__main__": |
| 43 | raise SystemExit(main()) |