Django-celery使用过程中错误以及解决方法汇总

报错1 - TypeError:can only concatenate list (not ‘tuple’) to list

在这里插入图片描述
参考:

https://stackoverflow.com/questions/49085230/django-celery-typeerror-can-only-concatenate-tuple-not-nonetype-to-tuple
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

解决:
djcelery\management\commands\celery.py 中的 options 部分注释掉
在这里插入图片描述

报错2 - from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger SyntaxError: invalid syntax

在这里插入图片描述
参考

https://stackoverflow.com/questions/53466160/unable-to-start-celery-worker-instance-syntax-error

原因是版本冲突。要降低版本
在这里插入图片描述
降低python版本

报错3 - Running a worker with superuser privileges when the worker accepts messages serialized with pickle is a very bad idea!

在这里插入图片描述
如果使用root用户启动celery会遇到下面的问题

from celery import Celery, platforms

platforms.C_FORCE_ROOT = True  #加上这一行

错误4 - from . import async, base SyntaxError: invalid syntax错误

参考:

链接:https://github.com/celery/celery/issues/4849

解决:
在这里插入图片描述

pip install --upgrade https://github.com/celery/celery/tarball/master

错误5 - django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

在这里插入图片描述
错误解决:

  1. 首先到系统根目录

    cd /
    
  2. 然后查找django

    find -name django
    

    在这里插入图片描述
    因为我实在虚拟环境cel下开发本项目,所以我django再上图所示的路径中。

  3. 编辑该路径下的/db/backends/sqlite3/base.py文件

    vim ./root/.local/share/virtualenvs/cel-l64ISTw0/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py
    

    在这里插入图片描述
    找到check_sqlite_version()方法,注释掉里面的报错代码

    def check_sqlite_version():
       pass
    	# if Database.sqlite_version_info < (3, 8, 3):
    	
    	# raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
    

    在这里插入图片描述

重新运行项目

python manage.py runserver

在这里插入图片描述
访问http:127.0.0.1:8000/
在这里插入图片描述

错误6 - AttributeError: ‘str’ object has no attribute ‘items’

在这里插入图片描述
原因:
redis版本问题
解决:回滚到旧版本

pip install redis==2.10.6
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值