Некоторое время я пытался запланировать запуск скрипта Python в cron дважды в день. Скрипт использует пару API для извлечения информации с веб-сайта и обновления этой информации в электронной таблице Google. Сценарий работает - я могу запустить его вручную без проблем, но когда я планирую его запуск из задания cron, я не вижу никаких выходных данных.
После небольшого устранения неполадок я наткнулся на эту страницу - https://cronitor.io/cron-reference/cron-troubleshooting-guide
Я выполнил все предложенные шаги и дошел до конца, где в нем говорится:
«Для python вы можете обнаружить, что ваше веб-приложение использует виртуальную среду, которую нужно вызвать в вашем crontab».
Как мне «вызвать виртуальную среду» в ubuntu? Я как раз нахожусь в точке, где не знаю, что делать дальше. Если это помогает, я запускаю свой скрипт на raspberry pi 3b в Ubuntu 20.04.3 LTS, и мой скрипт использует API Googlesheets.
РЕДАКТИРОВАТЬ: То, что я сделал до сих пор для устранения неполадок:
У моего пользователя есть разрешения на запуск cron
Я использую прямые пути в своем задании cron
Я проверил chron guru, чтобы убедиться, что мой расписание cron было установлено правильно так и есть.
Я получаю результат задания cron, которое выводит дату и время в файл.
( * * * * * /path/to/python3.8 /path/to/script/Script.py >> log.txt
)
так что я знаю, что это работает.
Я предоставил своему исполняемому скрипту права доступа с помощью chmod + x Script.py
Я убедился, что у моего пользователя есть разрешение на запуск скрипта.
Я убедился, что есть пустая строка в конце файла cron
я создал исполняемый файл оболочки, который выполняет сценарий
. Я убедился, что cron использует то же время, что и системное время
tail -f / var / log / syslog
показывает вывод моего скрипта в запланированное
раз, но когда я проверяю, обновлялась ли моя электронная таблица, это не так.
Я добавил shebang вверху моего скрипта python