当前位置: 代码迷 >> 综合 >> Django之python3 manage.py celery worker --loglevel=info报错
  详细解决方案

Django之python3 manage.py celery worker --loglevel=info报错

热度:12   发布时间:2023-12-04 16:36:50.0

继上篇文章 <<Django之celery报错>>解决后, 执行python3 manage.py celery worker –loglevel=info 再次报错:

...(前面一堆报错)File "/home/python/.virtualenvs/py_django/lib/python3.6/site-packages/djcelery/management/base.py", line 60, in CeleryCommandoptions = BaseCommand.option_list
AttributeError: type object 'BaseCommand' has no attribute 'option_list'

查询资料, 参考: 解决问题链接. 发现是:

BaseCopMang.Optudio列表在Django 1.8中被弃用,在Django 1.10中被删除。看起来Django扩展已经更新,
但是从那时起还没有新的版本。
您可以尝试从主分支安装Django扩展,但最好使用Django的最新版本,当前版本为1.92.2。Django 1.10尚未发布,
并且仍在开发中。

发现应该是Django版本问题.


解决办法:

根据报错, 打开/home/python/.virtualenvs/py_django/lib/python3.6/site-packages/djcelery/management/base.py

将第60行代码注释掉:

这里写图片描述
再次执行python3 manage.py celery worker –loglevel=info, 但是出现如下报错:

  File "/home/python/.virtualenvs/py_django/lib/python3.6/site-packages/djcelery/management/commands/celery.py", line 15, in Commandbase.get_options() +
AttributeError: type object 'CeleryCommand' has no attribute 'options'

打开文件: /home/python/.virtualenvs/py_django/lib/python3.6/site-packages/djcelery/management/commands/celery.py,

将第14-16行注释掉:

这里写图片描述

再次执行python3 manage.py celery worker –(两个-)loglevel=info, 成功运行:

这里写图片描述