跳到主要内容

函数的本地调试

本节首先介绍 FuncStudio 函数的本地调试功能,然后通过 2 个案例介绍本地调试功能的使用方法。

功能定义

由于接入 FuncStudio 的函数内核可能包含利用 FuncStudio SDK 获取当前参数方案的代码,如果直接在终端运行函数内核会报无法获取输入参数的错误。

本地调试
本地调试

因此,FuncStudio 提供了函数的本地调试功能,帮助用户在 FuncStudio 执行器里面对函数进行调试,本地调试相当于对函数内核进行 Debug,只有本地调试通过的函数才能集成到 CloudPSS 云服务框架下供自己或其他用户远程调用。

本地调试的优点在于会把函数所有的执行信息都输出,包括结果、提示、警告和报错,帮助用户快速定位到错误,从而及时调整程序。本地调试功能只在 FuncStudio 本地执行器里提供,网页版不支持。

功能说明

使用前提

使用函数本地调试功能的前提如下:

  • 确保在接口标签页内定义好函数的输入参数;

  • 确保借助 FuncStudio-SDK 给自定义算法内核封装好输入输出接口;

  • 确保在实现标签页内指定好内核的命令行执行语句和工作目录。

调试方法

满足上述前提后,进入执行器的运行标签页,配置好参数方案后点击调试执行按钮,对函数内核进行本地调试,如果显示运行失败,可以点击 ··· 号查看详细的报错信息,根据报错信息修改函数内核。

本地调试
本地调试

如果 FuncStudio 结果栏中的报错信息出现中文乱码,影响查看,可以打开日志文件夹的 .err 文件查看完整的报错信息。

查看详细报错信息
查看详细报错信息

调试技巧

由于 FuncStudio 是在终端执行 Python 内核文件,因此无法直接在 Python IDE 里面添加断点对内核逐步调试。可以采用每部分程序单独调试的方法,具体如下:

1.调通自己编写的算法程序

为了提高调试效率,建议用户先手动赋值参数方案,利用 Python IDE 的逐步调试功能将自己自己编写的算法程序调通。

注意

Python IDE 里面的调试环境必须和 FuncStudio 中指定的 Python 环境一致。

2.调通参数方案获取代码

将当前函数任务实例的 字典 print 到 FuncStudio 结果页面中,确保参数键和 字典中的参数键一致;

将获取的参数方案类型 print 到 FuncStudio 结果页面中,确保参数类型正确,如果不正确,则需要做参数类型转换。

3.调通格式化输出代码

确保 log、plot、table 等格式化输出方法的调用格式正确。

案例

常见问题

常见的调试报错有哪些?

常见调试报错包括如下三类:

  • cloudpss 模块不存在
cloudpss 模块不存在
cloudpss 模块不存在

报错原因:Python 环境没有安装 CloudPSS-SDK。

解决方法:检查命令窗口中的 Python 环境是否成功安装了 CloudPSS-SDK,参考 Python 环境配置 重新配置 Python 环境。

  • matlab 模块不存在
matlab 模块不存在
matlab 模块不存在

报错原因:Matlab 环境没有配置成功。

解决方法:参考 Matlab 环境配置 重新配置 Matlab 的 Python 环境。

调试执行通过,但是 FuncStudio 结果栏中没有任何输出结果该如何排查错误?

检查 log、plot、table 等格式化输出方法的调用格式是否正确;如果在 FuncStudio 中没有显示图形的话,检查 plot 方法的 traces 参数数据格式是否正确。