Сельдерей, комбу и джанго — ошибка импорта

Я запускаю приложение с django, и я хотел использовать сельдерей для выполнения некоторых запланированных задач.

Согласно официальной документации, в мой файл settings.py я установил транспорт брокера

BROKER_URL = 'django://'

и добавил kombu.transport.django в установленные приложения

INSTALLED_APPS = (
    ....
    'kombu.transport.django',
    ....)

Однако, когда я пытаюсь синхронизировать базу данных с помощью python manage.py syncdb, я получаю следующую ошибку:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 312, in execute
    django.setup()
  File "C:\Python27\lib\site-packages\django\__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Python27\lib\site-packages\django\apps\registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "C:\Python27\lib\site-packages\django\apps\config.py", line 119, in create
    import_module(entry)
  File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named django

Любые идеи, почему я получаю это? У меня правильно установлен django, и приложение работает нормально, если я удалю kombu.transport.django из установленных приложений.

Редактировать: похоже, проблема с комбу. Я установил его с помощью pip install kombu. Когда я пытаюсь импортировать в файл «kombu.transport», я не получаю ошибок, но когда я пытаюсь импортировать «kombu.transport.django», я получаю сообщение об ошибке:

ImportError: No module named django

person Gabriel Ilharco    schedule 08.01.2016    source источник
comment
Вы установили комбу? pip install kombu   -  person Amaury Medeiros    schedule 08.01.2016
comment
Да, он установлен   -  person Gabriel Ilharco    schedule 08.01.2016


Ответы (2)


Хотя это могло произойти после вашего поста, модуль django определенно был удален из пакета kombu. Текущая документация по сельдерею гласит, что начиная с версии 3.1 сельдерей работает с Django «из коробки». Это означает, что вам не нужно изменять settings.py для интеграции сельдерея (поэтому не включайте ссылки на комбу).

Удаление ссылок на комбу в settings.py — правильное решение.

Это коммит: https://github.com/celery/kombu/commit/65f982ccf31b86157c39a8feb420814210a83abe >

person nmgeek    schedule 06.11.2016

последний сельдерей удалил поддержку django в качестве брокера. Они предпочитают redis,rabbitmq в качестве предпочитаемого брокера.

person Vivin Veerali    schedule 01.02.2019