Ошибка FileNotFoundError: [Ошибка 2] Нет такого файла или каталога: «автоматический перезапуск»

#django #docker #celery #watchdog

Вопрос:

Пытался использовать сторожевой таймер для автоматического перезапуска celery worker / beat в контейнере docker при изменении кода и получении ошибки:

 # watchmedo auto-restart -d . -R -- celery -A main_app_name beat -l info
Traceback (most recent call last):
  File "/usr/local/bin/watchmedo", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/watchdog/watchmedo.py", line 641, in main
    args.func(args)
  File "/usr/local/lib/python3.9/site-packages/watchdog/watchmedo.py", line 625, in auto_restart
    handler.start()
  File "/usr/local/lib/python3.9/site-packages/watchdog/tricks/__init__.py", line 174, in start
    self.process = subprocess.Popen(self.command, preexec_fn=getattr(os, 'setsid', None))
  File "/usr/local/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/local/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'auto-restart'
#
 

все зависимости, установленные из requirements.txt:

 ***
pyyaml~=6.0
watchdog~=2.1.6
auto-restart~=2.2
***
 

При поиске файла ‘auro-restart’ в контейнере, получил:

 # find / -type f -name '*auto*restart*'
/root/.cache/pip/wheels/40/11/c1/9e570f5aac7910cf701243cda8b5fc58e56b329a3d73b4840b/auto_restart-2.2-py3-none-any.whl
/usr/local/bin/auto_restart
/usr/local/bin/auto_restart_tool
/usr/local/lib/python3.9/site-packages/auto_restart/auto_restart_when_git_changed.py
/usr/local/lib/python3.9/site-packages/auto_restart/__pycache__/auto_restart_when_git_changed.cpython-39.pyc
#
 

Кто-нибудь знает причину этой проблемы?

Ответ №1:

Возврат к 2.1.5 устранил проблему.

https://github.com/gorakhargosh/watchdog/issues/855