在使用crontab執行python腳本時中文亂碼,手動執行沒有問題
*/8 * * * * /usr/bin/python /root/xxxx/aaaa.py data > /root/xxxx/train.log 2>&1
產生原因:
這是因爲Unix/Linux下使用crontab時的運行環境已經不是用戶環境了,因此原本用戶下的一些環境變量的設置就失效了。例如原來用戶環境變量設置的是GB2312,但是使用crontab運行時的環境變量就可能是ISO8859-1。
解決方法:
1. 首先執行命令echo $LANG,假設輸出是zh_CN.UTF-8
2. 然後在crontab -e裏首行加入LANG=zh_CN.UTF-8
LANG=zh_CN.UTF-8
*/8 * * * * /usr/bin/python /root/xxxx/aaaa.py data > /root/xxxx/train.log 2>&1