为了账号安全,请及时绑定邮箱和手机立即绑定

类型错误:decorator() 缺少 1 个必需的位置参数:'func'

类型错误:decorator() 缺少 1 个必需的位置参数:'func'

慕妹3146593 2021-05-31 05:06:44
我正在尝试使用python huey(https://github.com/coleifer/huey/blob/master/huey/api.py)来允许烧瓶使用任务队列。从一个函数开始:def some_long_calculation():    driver = create_chromedriver(True)    print(driver.capabilities['version'])    driver.get("https://www.yahoo.com/news/")我将它导入到 tasks.py 文件中并变成一个任务函数:from . import my_hueysome_long_calculation_task = my_huey.task(some_long_calculation)然后,我将some_long_calculation_task导入main / views.py并尝试使用以下命令运行它:@main.route('/sanity_check')def sanity_check():    png = some_long_calculation_task()    return send_file(io.BytesIO(png),mimetype='image/png')但我得到:traceback (most recent call last):  File "...lib\site-packages\flask\app.py", line 1994, in __call__    return self.wsgi_app(environ, start_response)  File "...lib\site-packages\flask\app.py", line 1985, in wsgi_app    response = self.handle_exception(e)  File "...lib\site-packages\flask\app.py", line 1540, in handle_exception    reraise(exc_type, exc_value, tb)  File "...lib\site-packages\flask\_compat.py", line 33, in reraise    raise value  File "...lib\site-packages\flask\app.py", line 1982, in wsgi_app    response = self.full_dispatch_request()  File "...lib\site-packages\flask\app.py", line 1614, in full_dispatch_request    rv = self.handle_user_exception(e)  File "...lib\site-packages\flask\app.py", line 1517, in handle_user_exception    reraise(exc_type, exc_value, tb)  File "...lib\site-packages\flask\_compat.py", line 33, in reraise    raise value  File "...lib\site-packages\flask\app.py", line 1612, in full_dispatch_request    rv = self.dispatch_request()  File "...lib\site-packages\flask\app.py", line 1598, in dispatch_request    return self.view_functions[rule.endpoint](**req.view_args)  File "...app\main\views.py", line 123, in sanity_check    png = some_long_calculation_task()TypeError: decorator() missing 1 required positional argument: 'func'>>> some_long_calculation_task<function Huey.task.<locals>.decorator at 0x0000028CF8CF2BF8>我怎样才能解决这个问题?
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

根据错误消息,task返回一个装饰器(通常用作@语法糖)。


试试这个代码:


from . import my_huey

some_long_calculation_task = my_huey.task()(some_long_calculation)

这样的“正常”用法将类似于


@my_huey.task()

def my_function(...):

    ...


查看完整回答
反对 回复 2021-06-01
  • 1 回答
  • 0 关注
  • 604 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号