无法在任务文件中导入芹菜应用程序



我有以下文件夹结构

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']
)

我的仓库里也有代码

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

ModuleNotFoundError: No module named 'my_sub_project'

用于app导入的完整错误堆栈

解决方案是什么?


我已经阅读了命名和导入的文档,但是更改了 包含git_repo_main的导入会产生相同的错误,而且它是我的源根目录,因此它与大多数 IDE 的默认导入结构相反。

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

注意:我没有使用 django

在指定 PYTHONPATH 的git_repo_main目录中运行 Celery worker。像这样:PYTHONPATH=. celery -A celery_app.app worker -l info -P gevent

相关内容

  • 没有找到相关文章

最新更新