Evidentemente, cron no carga el perfil de bash, por lo que deberá escribir un contenedor.
Entonces, escriba un contenedor bash que exporte las variables necesarias y llame al script. Luego llame a ese envoltorio desde crontab. Cuando eso funcione, sabrá que sus variables no se exportaron correctamente para el usuario cuyo crontab editó.
Nota:Puede agregarlos en /etc/bashrc
y luego estará en su lugar para todos los usuarios, si tiene acceso de root.
También puede crear un envoltorio genérico y enviar elementos cron a través del envoltorio.
mi_bash_wrapper.sh
#!/bin/bash
. ~/.bash_profile
"$0"
evocar en cron:
0 1 * * * /my/loc/my_bash_wrapper.sh my_python_script arg1 arg2