Виртуальные среды Python — это автономные деревья каталогов, которые содержат установку Python для определенной версии Python, а также ряд дополнительных пакетов.
Допустим, ваш скрипт использует пакет «requests» для выполнения HTTP-запросов. Если вы установили запросы в виртуальной среде, вам необходимо убедиться, что виртуальная среда активна, когда ваш скрипт запускается из cron. В противном случае вы получите ImportError: нет запросов с именем модуля
.
С другой стороны, если вы установили запросы для всей системы и не используете виртуальные среды, вам также не нужно беспокоиться о них в контексте cron.
Вот что я бы сделал, чтобы устранить вашу конкретную проблему: я бы добавил операторы регистрации в сценарий, чтобы проверить предположения и гипотезы: запускается ли сценарий вообще? Он работает полностью? Если он делает HTTP-запросы, какие HTTP-статусы он возвращает?
Возможно, сценарий выдает исключение, но это исключение нигде не регистрируется. Этот фрагмент захватывает только стандартный вывод:
* * * * * /path/to/python3.8 /path/to/script/Script.py >> log.txt
Измените его, чтобы также захватить stderr:
* * * * * /path/to/python3.8 /path/to/script/Script.py >> log.txt 2>&1