这个问题在这里已有答案:

这可能与芹菜无关,但这是我的问题:

我的应用程序结构如下:

/app
   /__init__.py
   /api_1.0/foo.py
/proj
   /__init__.py
   /celery.py
   /tasks.py

所以在celery.py中我创建了一个芹菜应用程序:

flask = create_app(os.getenv('FLASKCONFIG') or None)
celery = Celery(__name__,
    broker=flask.config['CELERY_BROKER_URL'],
    include=['proj.tasks'])

celery.conf.update(flask.config)

在tasks.py中有芹菜任务列表 . 其中一个是 list_users

在foo.py中我尝试使用该任务:

从proj导入任务

但是当我这样做时,这会导致输入问题:

celery -A proj worker --logleve=info

错误信息:

from proj.celery import celery
    ImportError: cannot import name celery

奇怪的是,如果我删除了烧瓶应用程序的创建并简单地创建一个芹菜应用程序,问题就消失了 . 它看起来像一个循环导入问题 . 怎么避免这个?