O problema já foi resolvido aqui .
Altere o crontab de cron para iniciar seu interpretador Python preferido com o caminho do script como argumento:
21 21 * * * /usr/bin/python /home/craig/openurl.py
Lembre-se de que um link simbólico padrão apontará para a versão padrão do interpretador, o que pode não estar correto se o software for baseado na sintaxe 2.X de Python .
O daemon cron pode lançar o intérprete com direitos elevados, usar um interpretador restrito para tarefas críticas de segurança automatizadas .
EDITAR para cobrir uma fatia maior de problemas após a configuração do cronjob:
Para monitorar em tempo real os trabalhos feitos por cron e outros daemons do sistema, execute em um terminal:
tail -f /var/log/syslog
ou
tailf /var/log/syslog
(em alguns sistemas, o caminho do arquivo de log é diferente, como /var/log/cron.log )
Para redirecionar o OUTPUT de um cron job , insira um redirecionamento de shell para STDOUT no arquivo cronjob, como:
21 21 * * * /usr/bin/python /home/craig/openurl.py >> /home/craig/test.log
Em um script Python , um comando como print('TEST') anexará a string TEST a test.log ; qualquer subprocesso simples também será redirecionado.
Basta verificar o arquivo para saber se o script funciona como esperado.
Por favor, sinta-se à vontade para comentar aqui se tiver mais perguntas e não se esqueça de pressionar a seta para CIMA da esquerda e marcar como Favorita se eu for de alguma ajuda.
Tenha um bom dia.