恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
CANN runtime TEFusion E40024 错误码详解:Python 函数调用失败(Failed to call Python Method)
首页
资讯中心
/
CANN runtime TEFusion E40024 错误码详解:Python 函数调用失败(Failed to call Python Method)
CANN runtime TEFusion E40024 错误码详解:Python 函数调用失败(Failed to call Python Method)
发布时间:2026/9/19 12:23:35
CANN runtime TEFusion E40024 错误码详解Python 函数调用失败Failed to call Python Method【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime本指南以 CANN runtime 开源仓库中的错误码参考文档为主体深入讲解 TE Fusion 组件错误码E40024Environment_Error_Call_Python_Function_Failed的产生场景、报错格式、常见原因与排查解决步骤并结合仓库中错误码定义与加载机制的源码实现帮助开发者快速定位算子融合编译阶段 Python 函数调用失败类问题。E40024 错误码速览属性值错误码E40024错误标题Environment_Error_Call_Python_Function_Failed错误分类TEFusion ErrorsTE 融合错误严重级别ErrorE 类错误级同分类中另有 W 开头的告警级错误码错误信息Failed to call Python Method %s. Reason: %s.占位符语义依次为 Python 函数名func_name、报错原因reasonE40024 属于 TE FusionTEFusion组件错误码其错误码条目定义在仓库的 error_code.json 中对应的英文参考文档为 E40024-Environment_Error_Call_Python_Function_Failed.md中文文档位于 docs/zh/error_code_ref/TEfusion-Errors/E40024-Environment_Error_Call_Python_Function_Failed.md。完整错误码索引见 TEFusion-Errors.md。报错格式与占位符语义E40024 的错误信息采用统一模板格式如下Failed to call Python Method %s. Reason: %s.两个占位符%s的含义依次为Python API 名称即被调用的 Python 函数名报错原因Python 层抛出的异常信息如TypeError、ImportError、AttributeError等。该模板与仓库中错误码定义完全一致。在 error_code.json 中该条目的ErrMessage字段即Failed to call Python Method %s. Reason: %s.其Arglist字段为func_name, reason明确规定了两个占位符对应的参数顺序供错误上报时按序填充。典型报错示例解读文档给出的报错示例如下Failed to call Python Method op_params_to_json. Reason: TypeError: op_params_to_json() takes 1 positional argument but 2 were given.对该示例逐段解读被调用的 Python 函数op_params_to_json这是一个典型的算子参数转 JSON类辅助函数通常在算子融合/图编译流程中被调用用于将算子参数序列化为 JSON 格式。报错原因TypeError: op_params_to_json() takes 1 positional argument but 2 were given.即该函数只接受 1 个位置参数但实际传入了 2 个。结果函数调用失败运行时环境将错误码 E40024 连同函数名与原因一起上报形如本文开头所示的标准报错。从该示例可以推断E40024 并不代表某个固定函数出错而是指任何一次 Python 函数调用失败。真正的问题细节藏在Reason字段即 Python 异常信息中排查时应重点解析Reason之后的内容。可能原因官方文档给出的可能原因非常明确The Python Method does not exist.Python 函数不存在。但结合报错示例与 TE Fusion 组件的运行机制实际触发 E40024 的常见情形包括但不限于Python 函数本身不存在调用的函数名拼写错误、版本不匹配导致接口缺失或所依赖的 Python 模块/库未安装。函数调用签名不匹配如示例所示传入的参数个数与函数定义不符TypeError。Python 运行环境不完整缺少第三方 Python 依赖库或import阶段即失败。CANN 环境变量配置异常Python 路径、CANN 安装路径相关环境变量设置错误导致运行时找到的不是预期的 Python 环境或库版本。值得注意的是TE Fusion 错误码体系中对Python 模块导入失败和Python 函数调用失败做了区分——前者对应 E40020Failed to import Python module %s. Reason: %s.后者对应 E40024。当调用链在import阶段就失败时通常会看到 E40020而当模块已成功导入、但函数调用阶段抛错时则上报 E40024。两者可结合排查。解决方法按官方文档的建议可依次执行以下三步排查与修复1. 检查调用的函数是否正确确认 Python 依赖库已安装核对报错信息中%s显示的 Python 函数名是否存在、拼写是否正确、调用参数个数与类型是否符合函数定义可对照示例中的TypeError场景。确认该函数所依赖的 Python 库已经安装且版本匹配必要时执行如下命令验证python3 -c import 依赖模块名; print(依赖模块名.__version__)2. 检查 CANN 环境变量设置确认 CANN 软件包安装后已正确执行环境变量加载脚本通常为安装路径下的set_env.sh确保PYTHONPATH、LD_LIBRARY_PATH、ASCEND_HOME_PATH等指向正确的安装目录。确认系统默认 Python 版本与 CANN 组件要求的版本一致。TE Fusion 组件对 Python 版本敏感若版本过低会触发同分类下的 E40002Unsupported Python version等错误码。检查是否存在多个 CANN 版本或 Python 版本混用导致的环境串扰。3. 重新安装 CANN 包若上述检查均无问题可能是软件包安装不完整或文件损坏建议卸载后重新安装 CANN 软件包重新加载环境变量后再运行程序。底层原理错误码如何定义与加载在 CANN runtime 开源仓库中E40024 并非硬编码在业务代码里而是通过统一错误码管理机制定义与上报的。错误码定义所有错误码条目集中维护在 src/dfx/error_manager/error_code.json 中。E40024 条目的完整 JSON 结构如下{ errClass: TEFusion Errors, errTitle: Environment_Error_Call_Python_Function_Failed, ErrCode: E40024, ErrMessage: Failed to call Python Method %s. Reason: %s., Arglist: func_name, reason, suggestion: { Possible Cause: The Python Method does not exist., Solution: 1.Check that the called function is correct or the Python dependency library is installed.\n2.Check the CANN environment variable settings.\n3.Reinstall the CANN package. } }其中ErrMessage定义对外输出的错误文案模板Arglist声明占位符的参数名顺序suggestion则携带文档中可能原因与解决方法的原始描述——也就是说你看到的官方排障建议与运行时错误码文件是同源的。错误码加载机制错误码表在运行时由错误管理器加载。从 src/dfx/error_manager/error_manager.cc 可以看到加载路径定义为constexpr const error_message::char_t* const kErrorCodePath ../conf/error_manager/error_code.json;即错误码 JSON 文件会被打包安装到conf/error_manager/目录下错误管理器通过读取该 JSON 完成错误码与文案的注册与格式化。FormatErrorMessage等接口则负责按Arglist顺序将实际参数填入ErrMessage模板最终拼装出类似Failed to call Python Method op_params_to_json. Reason: ...的完整报错文本。与其他 TEFusion 错误码的关联E40024 所属的 TEFusion 错误码族覆盖了算子融合编译链路中的多个环节完整索引见 TEFusion-Errors.md错误码错误标题场景E40001Config_Error_Invalid_Environment_Variable环境变量取值无效E40002Environment_Error_Incorrect_Python_VersionPython 版本不支持E40003File_Operation_Error_OpenJSON 等文件打开失败E40020Environment_Error_Import_Python_Module_FailedPython 模块导入失败E40021Compilation_Error算子编译失败E40022Invalid_Argument参数取值无效E40023File_Operation_Error_Invalid_Path文件路径无效E40024Environment_Error_Call_Python_Function_FailedPython 函数调用失败W40010/W40011/W40012告警级错误环境变量、目录创建、参数等告警实际排障时建议将 E40024 与 E40020、E40001、E40002 放在一起综合判断如果报错发生在 Python 依赖导入阶段优先按 E40020 检查依赖库安装如果报错发生在函数调用阶段如示例中的参数个数不匹配则重点按 E40024 检查函数签名与调用方逻辑。这也解释了 E40024 解决方法第 1 步检查调用的函数是否正确或确认 Python 依赖库是否已安装的用意。小结E40024 是 TE Fusion 组件中用于标识Python 函数调用失败的环境类错误码其核心信息由函数名 原因两部分组成。排查时抓住Reason字段中的 Python 异常类型即可快速定位问题函数不存在含依赖缺失、拼写错误走依赖与环境检查签名不匹配如示例的TypeError走调用方代码检查环境异常则从 CANN 环境变量与软件包安装入手。借助仓库中 error_code.json 与 error_manager.cc 的源码还能进一步理解错误码从定义、加载到格式化上报的完整链路为更深层的日志分析提供依据。【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考