我很困惑,因为我是西芹新手,所以我不知道这是一个奇怪的错误,这个错误发生在安装阶段,每件事都只是按照西芹文档https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html中的说明进行配置

(env) muhammad@huzaifa:~/Desktop/practice/app$ celery -A app worker -l INFO
[2022-04-04 16:21:40,988: WARNING/MainProcess] No hostname was supplied. Reverting to default 'localhost'
[2022-04-04 16:21:40,993: CRITICAL/MainProcess] Unrecoverable error: AttributeError("'EntryPoint' object has no attribute 'module_name'")
Traceback (most recent call last):
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/app/base.py", line 1250, in backend
    return self._local.backend
AttributeError: '_thread._local' object has no attribute 'backend'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/worker/worker.py", line 203, in start
    self.blueprint.start(self)
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/bootsteps.py", line 112, in start
    self.on_start()
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/apps/worker.py", line 136, in on_start
    self.emit_banner()
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/apps/worker.py", line 170, in emit_banner
    ' \n', self.startup_info(artlines=not use_image))),
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/apps/worker.py", line 232, in startup_info
    results=self.app.backend.as_uri(),
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/app/base.py", line 1252, in backend
    self._local.backend = new_backend = self._get_backend()
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/app/base.py", line 955, in _get_backend
    backend, url = backends.by_url(
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/app/backends.py", line 69, in by_url
    return by_name(backend, loader), url
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/app/backends.py", line 47, in by_name
    aliases.update(load_extension_class_names(extension_namespace))
  File "/home/muhammad/Desktop/practice/env/lib/python3.8/site-packages/celery/utils/imports.py", line 146, in load_extension_class_names
    yield ep.name, ':'.join([ep.module_name, ep.attrs[0]])
AttributeError: 'EntryPoint' object has no attribute 'module_name'

初始化文件是:

from __future__ import absolute_import, unicode_literals

from .celery import app as celery_app

__all__ = ('celery_app',)

Celery .py:

import os

from celery import Celery

# Set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')

app = Celery('app', broker='localhost')

# Using a string here means the worker doesn't have to serialize
# the configuration object to child processes.
# - namespace='CELERY' means all celery-related configuration keys
#   should have a `CELERY_` prefix.
app.config_from_object('django.conf:settings', namespace='CELERY')

# Load task modules from all registered Django apps.
app.autodiscover_tasks()


@app.task(bind=True)
def debug_task(self):
    print(f'Request: {self.request!r}')

仅供参考,rabbitmq服务器正在本地主机上运行,这就是为什么我将BROKER_URL设置为"localhost"

 rabbitmq-server.service - RabbitMQ Messaging Server
     Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-04-03 16:14:04 PKT; 24h ago
   Main PID: 1005 (beam.smp)
     Status: "Initialized"
      Tasks: 91 (limit: 9090)

idk为什么会发生这种情况,我已经四处寻找了大约几个小时,找不到解决方案,甚至连谷歌或任何地方的错误都找不到.

推荐答案

你在Celery 上遇到了新的虫子,这里报道:https://github.com/celery/celery/issues/7409

您可以try 的解决方法是将celery的依赖项版本固定到较旧的版本(即在Celery bug发布之前).例如,my requirements.txt包括:

celery==5.2.3

或者在命令行上,您可能只需要运行

pip install celery==5.2.3

(作为参考,我在这里看到错误报告的版本是Celery 5.2.5和click 8.1.2)

希望这在upstream 得到修复,我们可以删除我们的版本引脚.

Python相关问答推荐

Python中的锁定类和线程以实现dict移动

将列表中的元素替换为收件箱中的元素

两极:如何分割一个大 pyramid 并并行保存每个

如何将带有逗号分隔的数字的字符串解析为int Array?

创建带有二维码的Flask应用程序,可重定向到特定端点

ambda将时间戳与组内另一列的所有时间戳进行比较

将轨迹优化问题描述为NLP.如何用Gekko解决这个问题?当前面临异常:@错误:最大方程长度错误

使用plotnine和Python构建地块

Polars LazyFrame在收集后未返回指定的模式顺序

类型错误:输入类型不支持ufuncisnan-在执行Mann-Whitney U测试时[SOLVED]

按列分区,按另一列排序

不允许访问非IPM文件夹

当我try 在django中更新模型时,模型表单数据不可见

如何合并两个列表,并获得每个索引值最高的列表名称?

什么是合并两个embrame的最佳方法,其中一个有日期范围,另一个有日期没有任何共享列?

我的字符串搜索算法的平均时间复杂度和最坏时间复杂度是多少?

在matplotlib中删除子图之间的间隙_mosaic

如何在BeautifulSoup/CSS Select 器中处理regex?

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

判断Python操作:如何从字面上得到所有decorator ?