Ошибка в скрипте manage.py при запуске задания cron для django внутри контейнера Docker - PullRequest
0 голосов
/ 08 марта 2019

У меня есть докер-контейнер, запускающий приложение django, в котором также выполняется задание cron.Управляемая команда продолжает сбой из-за этой ошибки:

Строка 14 в manage.py

line 14
) from exc
     ^
SyntaxError: invalid syntax

Моя задача cron выглядит следующим образом:

0 1 * * 1-5 python manage.py myCommand

Я пытался изменитьэто к этому, чтобы видеть, будет ли это добиваться цели:

0 1 * * 1-5 /usr/local/bin/python /absolute/path/to/project/manage.py myCommand

1 Ответ

2 голосов
/ 08 марта 2019

Это типичная ошибка, возникающая при использовании неправильной версии Python.После вашего комментария под вопросом:

Docker-контейнер использует python 3.5.Когда я запускаю python -V, я получаю Python 3.5.6

. Вы можете видеть, что ваш пользователь $PATH указывает на Python 3.5.6 при использовании сеанса оболочки вы открываете .В заданиях cron есть одна вещь, которая часто оставляет людей в замешательстве: cron открывает другую оболочку и не имеет доступа к вашему $PATH.Так что в вашем случае это указывает на Python 2.x.

Есть много способов преодолеть это.Вероятно, самый простой из них - проверить, где находится ваш Python 3, запустив

$ which python3

и используя путь из вывода команды cron.Например, для моей системы это будет:

0 1 * * 1-5 /usr/bin/python3 manage.py myCommand
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...