具有相同命名空间的外部模块的celery ImportError

时间:2015-05-10 16:31:15

标签: python django rabbitmq celery

我现在正在使用python,celery和rabbitmq,我遇到了一些麻烦。

我有一个带有命名空间ipynbsrv.wui的主django应用程序,此外我还有三个我在项目中引用的包 - 也是由我编写的 - 安装在系统中。他们使用相同的根名称空间(即ipynbsrv.module1ipynbsrv.module2等。)

这一切都可以自行解决。但是,当我尝试从ipynbsrv.wui.taskscelery -A ipynbsrv -n w1.%h --autoscale=20,3 --autoreload worker &

开始执行芹菜时

我总是收到像

这样的错误
from ipynbsrv.module1.utils import ClassLoader
  ImportError: No module named module1.utils

所以在我看来,就像芹菜正在搜索这个模块的当前项目,而不是采用系统上安装的那个。

ipynbsrv.wui.celery.py:

from __future__ import absolute_import

import os
from celery import Celery

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

app = Celery('ipynbsrv',
         broker='amqp://guest:guest@localhost',
         backend='rpc',)

# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')

我还添加了

from __future__ import absolute_import

到每个 init .py

每个提示都受到赞赏。

0 个答案:

没有答案