我具有以下文件夹结构
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
答案 0 :(得分:0)
在git_repo_main
目录中使用指定的PYTHONPATH运行Celery worker。类似于:PYTHONPATH=. celery -A celery_app.app worker -l info -P gevent