You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Email_Listener库无法按预期传递函数参数,求助原因解析

Email_Listener 函数参数传递问题解决

问题原因分析

  1. "name 'write_json_file' is not defined" 错误
    你直接使用write_json_file但未提前导入该函数,原作者的示例默认你已经通过from email_processing import write_json_file将函数导入当前命名空间,而你没做这一步,Python自然找不到这个名称。

  2. "write_json_file()缺少两个关键字参数" 错误
    你写email_processing.write_json_file()时加了括号,这是直接调用函数,而process_function参数需要的是函数对象本身(即不带括号的函数名)。加括号后Python会立即执行函数,而write_json_file需要接收邮件内容和保存路径两个参数,此时没传参就会报错。

正确用法

两种方式任选其一:

  • 方式一:先导入函数再传参
from email_processing import write_json_file
el.listen(timeout, process_function=write_json_file)
  • 方式二:直接传递模块下的函数对象(无需单独导入)
el.listen(timeout, process_function=email_processing.write_json_file)

原作者用法为何失效

原作者的文档可能默认项目的__init__.py已经将email_processing里的处理函数导出到包的顶层命名空间,但实际项目的__init__.py没做这个配置,所以你直接用函数名会找不到。你修改__init__.py导入函数的方式,本质是手动把函数加到了包的命名空间里,所以能正常使用,但这不是原作者示例的预设用法。

内容的提问来源于stack exchange,提问作者TxTechnician

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 01:45:34