【问题标题】:python celery AttributeError: 'int' object has no attribute 'upper' errorpython celery AttributeError: 'int' object has no attribute 'upper' 错误
【发布时间】:2021-11-08 16:07:04
【问题描述】:

我的任务.py

from celery import Celery

app = Celery('tasks',broker='xxxxxxxxxxx')


app.conf.timezone = 'UTC'

app.conf.beat_schedule = {
    'add-every-10-seconds': {
        'task': 'tasks.test',
        'schedule': 10.0,
        'args': 'Dedeler'
    },
}


@app.task
def test(arg):
    print(arg)

我可以用这个命令启动我的工人

celery -A tasks worker -l INFO -P solo --concurrency=1 -E

但是当我用“celery -A tasks beat”开始节拍时

Traceback (most recent call last):
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/bin/celery", line 8, in <module>
    sys.exit(main())
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/celery/__main__.py", line 15, in main
    sys.exit(_main())
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/celery/bin/celery.py", line 213, in main
    return celery(auto_envvar_prefix="CELERY")
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/core.py", line 1666, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/core.py", line 923, in make_context
    self.parse_args(ctx, args)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/core.py", line 1379, in parse_args
    value, args = param.handle_parse_result(ctx, opts, args)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/core.py", line 2364, in handle_parse_result
    value = self.process_value(ctx, value)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/core.py", line 2320, in process_value
    value = self.type_cast_value(ctx, value)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/core.py", line 2307, in type_cast_value
    return convert(value)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/click/types.py", line 75, in __call__
    return self.convert(value, param, ctx)
  File "/home/diablo/PycharmProjects/PersonalityTraitModel/PersonalityTrait/lib/python3.8/site-packages/celery/bin/base.py", line 245, in convert
    value = value.upper()
AttributeError: 'int' object has no attribute 'upper'

我收到此错误消息。我的代码有什么问题?

PS:我用的是heroku celery

【问题讨论】:

  • 试试'args': ['Dedeler']
  • 你追踪到问题代码value = value.upper()的位置了吗?它是在 celery 库代码中还是在您的代码中?
  • 错误在 celery 库中。它在 loglevel 类中。我试过 args ['Ddeler']。它不起作用。

标签: python heroku celery


【解决方案1】:

就我而言,在 click 和 celery 中发生了包冲突。尝试使用 pipdeptree 检查冲突。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2018-02-05
  • 2022-12-01
  • 2022-12-03
  • 2022-01-19
  • 1970-01-01
  • 2014-12-20
  • 2019-04-18
  • 2017-10-21
  • 1970-01-01
相关资源
最近更新 更多