Почему он не может найти мой файл конфигурации сельдерея? - PullRequest
19 голосов
/ 21 января 2011

/ дома / MyUser / MySite-ENV / Библиотека / python2.6 / сайт-пакеты / сельдерей / погрузчики / default.py: 53: NotConfigured: нет celeryconfig.py модуль найден! Пожалуйста, убедитесь, что это существует и доступен для Python.
NotConfigured)

Я даже определил его в своем / etc / профиле, а также в "активации" моей виртуальной среды Но это не чтение.

Ответы [ 4 ]

22 голосов
/ 27 ноября 2016

Теперь в Celery 4.1 вы можете решить эту проблему с помощью этого кода (самый простой способ):

import celeryconfig

from celery import Celery

app = Celery()
app.config_from_object(celeryconfig)

Например, маленький celeryconfig.py :

BROKER_URL = 'pyamqp://'
CELERY_RESULT_BACKEND = 'redis://localhost'
CELERY_ROUTES = {'task_name': {'queue': 'queue_name_for_task'}}

Также очень простой способ:

from celery import Celery

app = Celery('tasks')

app.conf.update(
    result_expires=60,
    task_acks_late=True,
    broker_url='pyamqp://',
    result_backend='redis://localhost'
)

Или Использование класса / объекта конфигурации:

from celery import Celery

app = Celery()

class Config:
    enable_utc = True
    timezone = 'Europe/London'

app.config_from_object(Config)
# or using the fully qualified name of the object:
#   app.config_from_object('module:Config')

Или как было упомянуто при установке CELERY_CONFIG_MODULE

import os
from celery import Celery

#: Set default configuration module name
os.environ.setdefault('CELERY_CONFIG_MODULE', 'celeryconfig')

app = Celery()
app.config_from_envvar('CELERY_CONFIG_MODULE')

Также см .:

21 голосов
/ 07 августа 2011

У меня была похожая проблема с моим модулем задач.Простой

# celery config is in a non-standard location
import os
os.environ['CELERY_CONFIG_MODULE'] = 'mypackage.celeryconfig'

в пакете __init__.py решил эту проблему.

2 голосов
/ 21 декабря 2011

вы можете обойти это с окружающей средой ... или использовать --config: для этого требуется

  1. путь относительно CELERY_CHDIR из / etc / defaults / celeryd
  2. имя модуля Python, а не имя файла.

Сообщение об ошибке, вероятно, может использовать эти два факта.

2 голосов
/ 04 апреля 2011

Убедитесь, что у вас есть celeryconfig.py в том же месте, где вы запускаете 'celeryd', или убедитесь, что он доступен по пути Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...