首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError('astimezone()参数1必须是datetime.tzinfo,而不是元组‘)

TypeError('astimezone()参数1必须是datetime.tzinfo,而不是元组‘)
EN

Stack Overflow用户
提问于 2017-03-13 12:51:49
回答 1查看 169关注 0票数 0

我用的是Django 1.8和芹菜4.0.2。当我开始拍芹菜的时候,它会抛出一个TypeError

代码语言:javascript
复制
celery beat v4.0.2 (latentcall) is starting.
__    -    ... __   -        _
LocalTime -> 2017-03-13 20:38:22
Configuration ->
    . broker -> redis://127.0.0.1:6379//
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@%WARNING
    . maxinterval -> 5.00 minutes (300s)
[2017-03-13 20:38:23,094: CRITICAL/MainProcess] beat raised exception <type 'exceptions.TypeError'>: TypeError('astimezone() argument 1 must be datetime.tzinfo, not tuple',)
Traceback (most recent call last):
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/apps/beat.py", line 107, in start_scheduler
    service.start()
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/beat.py", line 537, in start
    interval = self.scheduler.tick()
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/beat.py", line 255, in tick
    for e in values(self.schedule)]
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/beat.py", line 134, in is_due
    return self.schedule.is_due(self.last_run_at)
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/schedules.py", line 612, in is_due
    rem_delta = self.remaining_estimate(last_run_at)
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/schedules.py", line 601, in remaining_estimate
    return remaining(*self.remaining_delta(last_run_at, ffwd=ffwd))
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/schedules.py", line 538, in remaining_delta
    last_run_at = self.maybe_make_aware(last_run_at)
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/schedules.py", line 81, in maybe_make_aware
    return maybe_make_aware(dt, self.tz)
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/utils/time.py", line 326, in maybe_make_aware
    dt, timezone.utc if tz is None else timezone.tz_or_local(tz),
  File "/home/renq/PycharmProjects/Kimi/.pyenv/lib/python2.7/site-packages/celery/utils/time.py", line 301, in localize
    dt = dt.astimezone(tz)
TypeError: astimezone() argument 1 must be datetime.tzinfo, not tuple

我的芹菜是

代码语言:javascript
复制
CELERY_BROKER_URL = 'redis://127.0.0.1:6379',
CELERY_TIMEZONE = 'Asia/Shanghai',
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler',
CELERY_RESULT_BACKEND = 'django-db'

我将时区设置为“亚洲/上海”,并使用本地主机redis。为什么芹菜打丢了这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-13 13:11:03

您需要删除每行末尾的逗号。'Asia/Shanghai',是元组而不是字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42764116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档