Почему модуль celery недоступен при запуске celery в качестве демона с супервизором?
Я пытаюсь демонизировать свой проект на VPS. Если я запускаю celery из командной строки как
celery -A taxomat_api worker -B -l INFO
or
/var/www/html/taxomat/taxomat_api/venv/bin/celery --workdir=/var/www/html/taxomat/taxomat_api -A taxomat_api worker -B -l INFO
or
cd /var/www/html/taxomat/taxomat_api
root@taxomat:/var/www/html/taxomat/taxomat_api# venv/bin/celery -A taxomat_api worker -B -l INFO
все работает хорошо, но теперь, когда я пытаюсь запустить задачи celery как демон с супервизором, у меня возникает ошибка
Traceback(most recent call last):
File "/var/www/html/taxomat/taxomat_api/venv/bin/celery", line 5, in <module>
from celery.__main__ import main
File "/var/www/html/taxomat/taxomat_api/celery.py", line4, in <module>
ModuleNotFoundError: No module named 'celery.schedules'; 'celery' is not a package
Вот мой файл conf /path /etc/supervisor/conf.d/celery.conf/
[program:deeptechx-celery]
environment=PYTHONPATH="/var/www/html/taxomat/taxomat_api:$PYTHONPATH",DJANGO_SETTINGS_MODULE="taxomat_api.settings"
command=/var/www/html/taxomat/taxomat_api/venv/bin/celery --workdir=/var/www/html/taxomat/taxomat_api -A taxomat_api worker -B -l INFO
directory=/var/www/html/taxomat/taxomat_api
user=root
numprocs=1
stdout_logfile=/var/log/celery/worker.log
stderr_logfile=/var/log/celery/worker.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
killasgroup=true
priority=1
Мое дерево проекта имеет следующий вид
taxomat
taxomat_api
venv
bin
celery
lib
python3.8
taxomat_api
settings.py
celery.py
workers
tasks.py
Мой файл celery.py
from __future__ import absolute_import, unicode_literals
import os
from celery.schedules import crontab
from celery import Celery
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'taxomat_api.settings')
django.setup()
app = Celery('taxomat_api')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
На моей локальной машине демон тоже работает. Кто-нибудь может мне помочь? Я читал документацию, пробовал много способов, но ошибка одна и та же.