首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行芹菜工人时出错: ModuleNotFoundError:没有名为“mysite”的模块

运行芹菜工人时出错: ModuleNotFoundError:没有名为“mysite”的模块
EN

Stack Overflow用户
提问于 2022-06-15 08:56:27
回答 1查看 297关注 0票数 0

我用芹菜和狂犬病给登录的用户发送电子邮件。然而,当我管理我的芹菜工人时,我得到了:

我的项目名是myproject,应用程序名是app

代码语言:javascript
复制
celery -A myproject worker -l info

我跑芹菜的时候出错了

代码语言:javascript
复制
Traceback (most recent call last):
  File "/etc/myprojectenv/bin/celery", line 8, in <module>
    sys.exit(main())
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/__main__.py", line 15, in main
    sys.exit(_main())
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/bin/celery.py", line 217, in main
    return celery(auto_envvar_prefix="CELERY")
  File "/etc/myprojectenv/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/etc/myprojectenv/lib/python3.8/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/etc/myprojectenv/lib/python3.8/site-packages/click/core.py", line 1655, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
  File "/etc/myprojectenv/lib/python3.8/site-packages/click/core.py", line 920, in make_context
    self.parse_args(ctx, args)
  File "/etc/myprojectenv/lib/python3.8/site-packages/click/core.py", line 1378, in parse_args
    value, args = param.handle_parse_result(ctx, opts, args)
  File "/etc/myprojectenv/lib/python3.8/site-packages/click/core.py", line 2360, in handle_parse_result
    value = self.process_value(ctx, value)
  File "/etc/myprojectenv/lib/python3.8/site-packages/click/core.py", line 2322, in process_value
    value = self.callback(ctx, self, value)
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/bin/worker.py", line 160, in <lambda>
    value: value or ctx.obj.app.conf.worker_state_db,
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/utils/collections.py", line 112, in __getattr__
    return self[k]
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/utils/collections.py", line 392, in __getitem__
    return getitem(k)
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/utils/collections.py", line 250, in __getitem__
    return mapping[_key]
  File "/usr/lib/python3.8/collections/__init__.py", line 1006, in __getitem__
    if key in self.data:
  File "/etc/myprojectenv/lib/python3.8/site-packages/kombu/utils/objects.py", line 30, in __get__
    return super().__get__(instance, owner)
  File "/usr/lib/python3.8/functools.py", line 967, in __get__
    val = self.func(instance)
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/app/base.py", line 138, in data
    return self.callback()
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/app/base.py", line 967, in _finalize_pending_conf
    conf = self._conf = self._load_config()
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/app/base.py", line 977, in _load_config
    self.loader.config_from_object(self._config_source)
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/loaders/base.py", line 128, in config_from_object
    self._conf = force_mapping(obj)
  File "/etc/myprojectenv/lib/python3.8/site-packages/celery/utils/collections.py", line 43, in force_mapping
    if isinstance(m, (LazyObject, LazySettings)):
  File "/etc/myprojectenv/lib/python3.8/site-packages/django/utils/functional.py", line 258, in inner
    self._setup()
  File "/etc/myprojectenv/lib/python3.8/site-packages/django/conf/__init__.py", line 74, in _setup
    self._wrapped = Settings(settings_module)
  File "/etc/myprojectenv/lib/python3.8/site-packages/django/conf/__init__.py", line 183, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'mysite'

settings.py

代码语言:javascript
复制
CELERY_RESULT_BACKEND = 'django-db'
CELERY_CACHE_BACKEND = 'django-cache'
CELERY_BROKER_URL = 'amqp://hpoddar:password@IPADDRESS/vhostcheck'

__init__.py

代码语言:javascript
复制
from .celery import app as celery_app

__all__ = ('celery_app',)

在我的应用程序app中,我有一个发送邮件的tasks.py

代码语言:javascript
复制
import time
from celery import shared_task
from django.core.mail import send_mail


@shared_task
def send_email_task(email):
    "background task to send an email asynchronously"
    subject = 'Hello from Celery'
    message = 'This is a test email sent asynchronously with Celery.'
    time.sleep(1)
    return send_mail(
        subject,
        message,
        'stackoverflow@gmail.com',
        [email],
        fail_silently=False
    )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-15 09:11:34

错误出现在项目celery.py文件夹中的myproject文件中。我的项目名为myproject,但我正在从mysite.settings读取配置。修正了同样的,现在起作用了

代码语言:javascript
复制
import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')

app = Celery('myproject')

app.config_from_object('django.conf:settings', namespace='CELERY')

# Load task modules from all registered Django apps.
app.autodiscover_tasks()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72628503

复制
相关文章

相似问题

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