Najwyraźniej cron nie ładuje profilu bash, więc będziesz musiał napisać wrapper.
Napisz więc wrapper bash, który eksportuje potrzebne zmienne i wywołuje skrypt. Następnie wywołaj ten wrapper z crontab. Gdy to zadziała, będziesz wiedział, że twoje zmienne nie zostały poprawnie wyeksportowane dla użytkownika, którego crontab edytowałeś.
Uwaga:możesz dodać je do /etc/bashrc
i będzie dostępny dla wszystkich użytkowników, jeśli masz uprawnienia roota.
Możesz także zrobić ogólne opakowanie, a cron wysyła je przez opakowanie.
my_bash_wrapper.sh
#!/bin/bash
. ~/.bash_profile
"$0"
wywołaj w cron:
0 1 * * * /my/loc/my_bash_wrapper.sh my_python_script arg1 arg2