gpt4 book ai didi

python - BaseEventLoop.run_in_executor() throws "unexpected keyword argument ' callback'"从 Python 3.5 开始

转载 作者:行者123 更新时间:2023-11-28 22:41:08 30 4
gpt4 key购买 nike

我正在通过默认的 asyncio 事件循环运行函数 provision_ec2_node() thread executor .该函数采用一些参数,我通过 functools.partial() 将这些参数传递给执行程序。

task = loop.run_in_executor(
executor=None,
callback=functools.partial(
provision_ec2_node,
modules=modules,
host=instance.ip_address,
identity_file=identity_file,
cluster_info=cluster_info))

这段代码在 Python 3.4 上运行良好,我已经这样使用了几个月。

但是,我最近升级到 Python 3.5,现在上面的代码抛出这个错误:

TypeError: run_in_executor() got an unexpected keyword argument 'callback'

查看 Python 3.5 release notes concerning asyncio ,我没有看到任何可以解释这种行为变化的东西。此外,3.5 文档 still say functools.partial() 是将带有关键字的函数传递给执行程序的正确方法。

什么给了?

最佳答案

显然第二个参数是renamedcallbackfunc但更改未反射(reflect)在文档中 自 2015 年 10 月 1 日起,更改已反射(reflect)在文档中。这就是它失败的原因。

将其更新为新名称(并失去 Python <3.5 兼容性)或将参数作为位置参数传递:

task = loop.run_in_executor(None, functools.partial(...))

关于python - BaseEventLoop.run_in_executor() throws "unexpected keyword argument ' callback'"从 Python 3.5 开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32873974/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com