Celery,kombu和django - 导入错误

时间:2016-01-08 14:45:11

标签: python django celery kombu

我正在使用django运行应用程序,我想使用芹菜来完成一些计划任务。

根据oficial docs,在我的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,应用程序运行正常。

编辑:这似乎是kombu的一个问题。我用pip install kombu安装了它。当我尝试导入文件时,kombu.transport&#39;我没有错误,但当我尝试导入&#39; kombu.transport.django&#39;我得到一个错误:

ImportError: No module named django

2 个答案:

答案 0 :(得分:9)

虽然它可能发生在你的帖子后,django模块肯定是从kombu包中删除的。芹菜的当前文档指出,从版本3.1开始,芹菜与Django一起开箱即用#39;。这意味着你不必修改settings.py来整合芹菜(所以不要包括对kombu的引用)。

在settings.py中删除对kombu的引用是正确的解决方案。

这是提交:https://github.com/celery/kombu/commit/65f982ccf31b86157c39a8feb42081410b83abe2

答案 1 :(得分:0)

最新芹菜已删除了对django作为经纪人的支持。他们更喜欢redis,rabbitmq作为他们的首选经纪人。