Evidentemente cron non carica il profilo bash, quindi dovrai scrivere un wrapper.
Quindi, scrivi un wrapper bash che esporti le variabili necessarie e chiami lo script. Quindi chiama quel wrapper da crontab. Quando funzionerà, saprai che le tue variabili non sono state esportate correttamente per l'utente di cui hai modificato crontab.
Nota:puoi aggiungerli in /etc/bashrc
e sarà quindi disponibile per tutti gli utenti, se disponi dell'accesso come root.
Puoi anche creare un wrapper generico e cron che le cose le inviino tramite il wrapper.
my_bash_wrapper.sh
#!/bin/bash
. ~/.bash_profile
"$0"
evoca in cron:
0 1 * * * /my/loc/my_bash_wrapper.sh my_python_script arg1 arg2