установка супервизора в Linux Ubuntu с python2.7
virtualenv : python3.6 + Django2.0 + сельдерей4.2
это файл celery.py:
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'savemoney.settings')
app = Celery('savemoney')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
init file:
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']
Мой рабочий в сельдерее работает хорошо, но когда я запускаю Celery в виртуальном режиме с супервизором:
File "/path/env/mysite/mysite/__init__.py", line 5, in <module>
from .celery import app as celery_app
File "/path/env/mysite/mysite/celery.py", line 7, in <module>
app.config_from_object('django.conf:settings', namespace='CELERY')
TypeError: config_from_object() got an unexpected keyword argument 'namespace'
Моя настройка сельдерея:
[program:celery.worker]
directory=/path/env/mysite/
command=/path/env/mysite/celery -A mysite worker -l info
user=root
numprocs=1
autostart=true
autorestart=true
stopsignal=INT
stdout_logfile=/path/env/mysite/celery_worker.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
redirect_stderr=false
stderr_logfile=/path/env/mysite/celery_worker_err.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=10
Я попробовал:
1.environment
environment=PATH="/path/env/bin",VIRTUAL_ENV="/path/env/mysite/",PYTHONPATH="/path/env/lib/python:/path/env/lib/python3.6/site-packages"
2.команда full_path
command=/path/env/mysite/celery -A mysite worker -l info
супервизор> статус
supervisor> status
celery.work BACKOFF can't find command '/path/env/mysite/celery'
Я ссылаюсь на чей-то путь вот так:
command=/path/env/mysite/bin/celery -A mysite worker -l info
но у моего проекта нет каталога "bin"
Я пытался:
command=/path/env/bin/celery -A mysite worker -l info
ошибка:
ModuleNotFoundError: No module named 'mysite'