已关闭
[Doc]: install.sh 帮助命令在 Python 3.14 环境下崩溃,文档缺少 Python 版本约束说明 #194
肾炝喜鲤创建于  6月27日关闭于  7月7日
肾炝喜鲤
肾炝喜鲤
6月27日 创建

问题描述

按照安装部署工具的使用入口体验帮助命令时,当前环境默认 python3 为 Python 3.14,执行:

bash ascend_deployer/install.sh -h

没有输出帮助信息,而是在导入阶段解析 inventory_file 并写入 parsed_inventory_file 时崩溃:

configparser.InvalidWriteError: Cannot write key gateways=""; contains delimiter

同一仓库使用 Python 3.11 执行:

python3.11 ascend_deployer/start_deploy.py -h

可以正常输出帮助信息。

复现步骤

  1. 准备默认 python3 为 Python 3.14 的环境。

  2. 在仓库根目录执行:

    bash ascend_deployer/install.sh -h
    
  3. 观察命令输出。

实际结果

命令崩溃,无法查看帮助信息,错误栈中包含:

configparser.InvalidWriteError: Cannot write key gateways=""; contains delimiter

预期结果

-h/--help 应稳定输出帮助信息;如果 Python 3.14 暂不支持,也应在文档或入口脚本中明确说明支持的 Python 版本范围,并给出可操作的规避方式。

影响

用户在较新的 Python 环境中体验安装部署工具时,第一步查看帮助即失败,容易误判工具不可用。

建议修复

可以考虑以下任一方向:

  1. 在 README 和安装指南中明确 ascend-deployer 当前推荐/支持的 Python 版本范围。
  2. 在 install.sh 或 start_deploy.py 入口处增加 Python 版本检查,不支持时给出清晰错误提示。
  3. 优化 -h/--help 路径,避免帮助命令在解析参数前触发 inventory 解析和文件写入副作用。

本地验证

失败命令:

bash ascend_deployer/install.sh -h

失败环境:

python3 -> Python 3.14

对照命令:

python3.11 ascend_deployer/start_deploy.py -h

对照结果:Python 3.11 下可正常输出 ascend-deployer 帮助信息。

likedislike
xiangjie10成员
6月27日 评论:

👋 您好,感谢向 ascend-deployer 提交 Issue!
🎉 我们已收到您的反馈,感谢你对开源社区的支持!

📅 处理时效 维护团队将在工作日 24 小时内查看并回复您的问题。
🔍 自助排查(推荐优先查看) 在等待回复期间,您可以先查阅仓库README以及历史 Issue 中相似问题的解决方案,多数问题可快速解决。
💡 为了更快定位问题,请您确保 Issue 包含:

  • 清晰的问题描述
  • 可复现的操作步骤
  • 相关日志、截图或环境信息
    我们会尽快跟进,感谢您的理解与配合!
likedislike
xiangjie10成员
6月27日 评论:

/label add triaged

likedislike
ascend-robotascend-robot成员
6月27日 添加了label:document
ascend-robotascend-robot成员
6月27日 添加了label:triaged
Wu,Qiang-RoyWu,Qiang-Roy成员
6月28日 issue状态由 TODO 改变为 Analysing
肾炝喜鲤肾炝喜鲤
6月29日 修改了issue 的描述
Xxuchuan成员
6月30日 关联了pull request:资料更改,增加使用约束
xuchuan成员
7月2日 评论:

在docs/zh/introduction.md中工具限制及注意事项中,约束了python的版本

likedislike
xuchuan成员
7月2日 评论:

/label add resolved

likedislike
ascend-robotascend-robot成员
7月2日 添加了label:resolved
Xxuchuan成员
7月7日 issue状态由 Analysing 改变为 DONE
Xxuchuan成员
7月7日 关闭了 issue
肾炝喜鲤
肾炝喜鲤
7月29日 评论:

按父任务 #126 的检视要求,补充本 Issue 的设计文档与自验证报告。以下材料只覆盖本 Issue,不代表父任务整体已经验收。

设计文档

#126-194 Python 版本约束说明设计文档

目录

1. 评审目标

确认用户在安装前能够看到 Ascend Deployer 支持的 Python 版本范围,并能区分
“不在支持范围”与“工具在受支持版本发生故障”。

项目 内容
父任务 #126
改进 Issue #194
对应 PR 无
当前状态 Issue closed,resolved

2. 问题边界

Python 3.14 环境执行帮助入口会在 inventory 写入阶段触发
configparser.InvalidWriteError。原资料没有清晰写明支持版本,用户容易把
超出支持范围的行为误判为通用安装故障。

3. 设计选择

资料明确当前支持范围为 Python 3.6~3.12。这是环境契约说明,不通过文档声称
已经兼容 Python 3.14。

运行时“帮助命令不应提前初始化部署任务”的问题单独归入
#195,避免把文档约束
与代码副作用混为一个修复。

4. 验收标准

  • 安装或介绍文档明确 Python 最低和最高支持版本;
  • 表述与项目当前支持口径一致;
  • Python 3.14 不被写成已支持或已修复;
  • 运行时副作用仍由 #195 独立追踪。

5. 状态与非目标

2026-07-21 的本地材料检查确认文档包含 Python 3.6~3.12 约束;
2026-07-29 API 回读确认 #194 已关闭并标记 resolved。本项不包含 Python
3.14 兼容实现、入口脚本版本检查或部署 E2E。

6. 目标、非目标与约束

目标是让用户在安装前识别 Python 3.6~3.12 的支持范围。非目标是通过文档完成
Python 3.14 适配或证明每个小版本都经过真机部署。约束是将版本契约与 #195 的
运行时副作用分开。

7. 需求与评审意见追踪

来源 要求 设计 证据 状态
#194 资料说明支持版本 明确上下限 文档文本检查 verified
#195 帮助路径副作用 独立追踪 运行复现 不归入本项修复

本项没有 issue-specific 的真实技术评审意见。

8. 总体架构与职责边界

flowchart LR
    U["用户环境"] -->|对照| V["资料中的 3.6~3.12"]
    V -->|范围内| S["按支持流程继续"]
    V -->|范围外| O["提示不在声明范围"]
    O -->|发现独立副作用| I["转入 #195"]

9. 代表性主流程

sequenceDiagram
    participant U as 用户
    participant D as 介绍/安装资料
    participant R as 运行时
    U->>D: 安装前检查 Python 要求
    D-->>U: 返回 3.6~3.12
    U->>R: 在支持范围内运行
    R-->>U: 返回实际工具结果

资料只声明支持边界;运行时成功或失败仍由实际命令决定。

10. 关键类或组件关系

没有新增类或接口。资料是用户环境与运行时之间的前置契约;#195 的 CLI 初始化链
属于相邻但独立的代码责任。

11. 兼容、迁移与版本策略

资料变更不要求配置迁移。若未来扩展到 Python 3.13/3.14,必须先取得运行时和依赖
验证,再同步所有安装入口与包元数据,不能只改一处说明。

自验证报告

#126-194 自验证报告

目录

1. 验证范围

本报告验证支持版本资料是否明确,不把 Python 3.14 失败路径计为功能修复。

2. 原始现象

原始体验结果:

Python 3.14:帮助输出前触发 configparser.InvalidWriteError
Python 3.11:可以输出帮助,但运行时仍存在额外文件副作用

第二项运行时副作用由 #195 继续追踪。

3. 文档检查

2026-07-21 在当时的 dev@bcf91984 确认介绍文档包含:

Python 版本需大于等于 3.6,小于等于 3.12

该证据证明支持范围已写入资料,不证明 3.6~3.12 的每个小版本均完成真机部署。

4. 线上状态

2026-07-29 GitCode API 回读:

Issue #194:closed
标签:document、triaged、resolved
对应 PR:无

5. 结论与限制

提交方证据支持“版本约束已明确、资料 Issue 已关闭”。Python 3.14 适配以及帮助
路径初始化行为不属于本项完成结论。

6. 不可变环境基线

资料检查固定为 2026-07-21 的 dev@bcf91984;Python 3.14 现象来自同日实跑;
Issue 状态固定为 2026-07-29 API 回读。

7. 需求到验证矩阵

要求 检查 结果 证明 未证明
明确最低版本 文档文本 3.6 下限已声明 3.6 真机部署
明确最高版本 文档文本 3.12 上限已声明 3.12 全场景
不误报 3.14 边界核对 未列入支持范围 资料口径正确 3.14 永久不支持

8. 自验证结果总览

场景 观察 分类
资料约束 “大于等于 3.6,小于等于 3.12” verified
Python 3.14 帮助前异常 verified,但属边界证据
Issue 状态 closed、resolved verified remote fact

9. 故障与负向链路

Python 3.14 的 InvalidWriteError 是范围外负向证据,不能拿它证明 3.6~3.12 都
健康,也不能以关闭 #194 掩盖 #195 的导入时副作用。

10. 兼容与迁移验证

本项只验证资料约束,没有对 3.6~3.12 做版本矩阵运行,也没有用户配置迁移。
未来扩大支持范围时需要运行时、依赖和资料同步验证。

11. 限制与提交方结论

提交方结论是“支持范围已明确且 Issue 已关闭”。不声称 Python 3.14 已适配,不把
资料说明当作完整兼容测试。

likedislike