我的文件夹结构憋屈芹菜教程
proj/
__init__.py
celery_app.py
tasks.py
我celery_app看起来像
from __future__ import absolute_import, unicode_literals
from celery import Celery
app = Celery('proj',
broker='amqp://',
backend='amqp://',
include=['proj.tasks'])
# Optional configuration, see the application user guide.
app.conf.update(
result_expires=3600,
)
if __name__ == '__main__':
app.start()
和我tasks.py看起来像
from __future__ import absolute_import, unicode_literals
from celery_app import app
@app.task
def add(x, y):
return x + y
@app.task
def mul(x, y):
return x * y
@app.task
def xsum(numbers):
return sum(numbers)
当我去命令行并运行
celery -A proj worker --app=proj.celery_app:app -l info
我得到一个错误
"ImportError: No module named celery_app"
,当我打开它从
from celery_app import app
到
from .celery_app import app
然后它的作品!但后来,当我尝试从任务中导入*从蟒蛇的外壳,我得到
ValueError: Attempted relative import in non-package
不过,如果我回去,并带走之前。在celery_app的前面,我可以成功导入它。为什么会发生这种情况,我需要改变我为每个脚本导入它以便成功运行?
由于某种原因,它不适合我......你认为这与使用2.7解释器有关吗? – joe
我正在使用2.7。确保你完全按照我的指示。可能有助于在新目录中从头开始,以防出现干扰。如果有帮助,我在回答中改进了格式。 – Louis
没关系让它工作,谢谢。 – joe