Я использую supervisord для запуска сельдерея как демона, но он дает мне ошибку ImportError: No module named tasks worker
. Я могу запустить его из оболочки без супервизора. Мой конфигурационный файл для supervisord, как:Ошибка импорта Python с Supervisord
[program:celery]
directory=/home/yongfengzhang/videomaker
environment=PYTHONPATH="/home/yongfengzhang/videomaker:/home/yongfengzhang/videomaker/videomaker:$PYTHONPATH",DJANGO_SETTINGS_MODULE="videomaker.settings"
;command=/home/yongfengzhang/Envs/videomake/bin/celery -A "tasks worker" --loglevel=INFO --concurrency=4
command=celery -A "tasks worker" --loglevel=INFO --concurrency=4
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1
user=yongfengzhang ; setuid to this UNIX account to run the program
stdout_logfile=/home/yongfengzhang/logs/celery/celery.log
stderr_logfile=/home/yongfengzhang/logs/celery/celery.err
autostart=true
autorestart=true
Так под /home/yongfengzhang/videomaker
у меня есть tasks.py
, который определяет экземпляр сельдерея и функции задачи (не показан здесь):
app = Celery('tasks', backend='redis://localhost', broker='amqp://myuser:[email protected]:5672/myvhost')
При непосредственном запуске сельдерей в этой папке (~/videomaker
), все в порядке. Envs/videomake
- это место, где находится мой virtualenv. В папке находится __init__.py
. Любой вход будет оценен с большой благодарностью. Большое спасибо.