无法在任务文件中导入celery应用

时间:2019-10-17 11:54:44

标签: python import celery

我具有以下文件夹结构

git_repo_main
   └───my_sub_project
       │   celery_app.py
       │   __init__.py
       │
       ├───calcs
       │   │   math_funcs.py  -> from my_sub_project.celery_app import app
       │   │   __init__.py
       │
       ├───piplines
           │   run_math_pipeline.py -> from my_sub_project.calcs import math_funcs
           │   __init__.py

celery_app.py如下所示:

from celery import Celery

app = Celery('my_sub_project',
             broker='amqp://guest@localhost//',
             backend='amqp://guest@localhost//',
             include=['calculations.math_funcs']
             )

我的repo上也有代码

使用以下命令运行芹菜:celery -A celery_app worker -l info -P gevent时,出现以下错误

ModuleNotFoundError: No module named 'my_sub_project'

app导入的完全错误stack

什么是解决方案?


我已经阅读了naming and imports的文档,但是进行了更改 包含git_repo_main的导入会产生相同的错误,加上它是我的源根目录,因此它与大多数IDE的默认导入结构相反。

我也发现了类似的question,但是它似乎解决了任务发现的问题,而不是app和任务导入的问题。

注意:我没有使用Django

1 个答案:

答案 0 :(得分:0)

git_repo_main目录中使用指定的PYTHONPATH运行Celery worker。类似于:PYTHONPATH=. celery -A celery_app.app worker -l info -P gevent