У меня есть скрипт python, который находит мои оценки на веб-странице и отправляет мне электронное письмо, если какие-либо из моих оценок были изменены. Сейчас я пытаюсь запускать этот скрипт каждый час с помощью crontab. Скрипт работает при запуске через терминал:
python3 /home/pi/Desktop/grades/script.py
Я не совсем понимаю, как crontab интерпретирует команды, но как первое, что я попробовал, я сделал:
* * * * * python3 /home/pi/Desktop/grades/script.py
Это не Работа. Посмотрев вокруг, я обнаружил, что мне нужно указать ОБОЛОЧКУ. Я сделал which bash
и which zsh
, чтобы найти правильную оболочку для использования. Это пришло с bash. Итак, в верхней части crontab я ввожу:
SHELL=/bin/bash
Затем я обнаружил, что мне нужно указать отображение. Поэтому я сделал inv | grep 'DISPLAY'
, чтобы найти номер дисплея, который был 0.0. Поэтому я добавил еще одну вещь в crontab:
* * * * * DISPLAY=:0 python3 /home/pi/Desktop/grades/script.py
Хотя я не думаю, что мне нужно указывать переменную PATH, я все же сделал echo $PATH
и скопировал весь результат в crontab.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
Тогда кто-то предложил удостовериться, что хромедрайвер действительно был найден, и убедиться, что я должен указать абсолютный путь к хроматриверу в моей программе. На данный момент код, который устанавливает драйвер - driver = webdriver.Chrome()
, и это прекрасно работает. Если я попытаюсь указать точный путь к исполняемому файлу chromedriver, я получу сообщение об ошибке.
Кажется, что независимо от того, что я делаю, это не работает. Я пытался найти это много раз, но ничто не решает эту проблему. Буду очень признателен за любую помощь!