首页 > 解决方案 > 带有 APScheduler 的 Pyinstaller - 带有 IntervalTrigger 的 TypeError

问题描述

我遇到了和这里一样的问题(见下面的链接),简单地说:无法创建使用 APScheduler 的 python 脚本的 .exe

Pyinstaller 3.3.1 & 3.4.0-dev 使用 apscheduler 构建

所以我按照建议做了:

from apscheduler.triggers import interval
    
scheduler.add_job(Run, 'interval', interval.IntervalTrigger(minutes = time_int), 
                                  args = (input_file, output_dir, time_int), 
                                  id = theID, replace_existing=True)

确实导入 interval.IntervalTrigger 并将其作为参数传递给 add_job 解决了这个特定的错误。

但是,现在我遇到了:

类型错误:add_job() 为参数 'args' 获得了多个值

我对其进行了测试,并且由于现在调用触发器的方式,我可以确定它正在发生。我还尝试分别定义 trigger = interval.IntervalTrigger(minutes = time_int) ,然后只传递触发器,同样的情况发生了。

如果我忽略了 try/except 的错误,我发现它根本没有将作业添加到 sql 数据库中(我使用 SQLAlchemy 作为作业存储)。最初我认为这是因为我在 for 循环中添加了多个作业,但它也发生在单个作业添加中。

如果最初的问题,任何人都知道其他解决方法,或者知道为什么会发生此错误?我在网上也找不到任何东西:(

标签: pythonpyinstallerapscheduler

解决方案


事情总是在早上更好。

对于遇到此问题的其他任何人:您不需要同时使用 'interval' 和 interval.IntervalTrigger() 作为参数,代码应该是,这就是错误的来源。

scheduler.add_job(Run, interval.IntervalTrigger(minutes = time_int), 
                          args = (input_file, output_dir, time_int), 
                          id = theID, replace_existing=True)

推荐阅读