невозможно импортировать приложение сельдерея в файлы задач - PullRequest
0 голосов
/ 17 октября 2019

У меня следующая структура папок

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 приводит к той же ошибке, плюс это мой источник root, поэтому его счетчик равенструктура импорта по умолчанию для большинства IDE.

Я также нашел похожий вопрос , однако, похоже, он решает проблему обнаружения задач, а не app и импорта задач.

Примечание : я не использую django

1 Ответ

0 голосов
/ 17 октября 2019

Запустите вашего сотрудника Celery в каталоге git_repo_main с указанным параметром PYTHONPATH. Что-то вроде: PYTHONPATH=. celery -A celery_app.app worker -l info -P gevent

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...