这可能与芹菜无关,但这是我的问题:
我的应用程序结构如下:
/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
奇怪的是,如果我删除了烧瓶应用程序的创建并简单地创建一个芹菜应用程序,问题就会消失。 它看起来像一个循环导入问题。怎么避免这个?