最近写了几个在crond中使用的python定时执行脚本。其中使用了datetime包中的timedelta的total_seconds()方法。配置定时执行的方式也很简单,就写成了
*/5 * * * * root python abc.py
写好后,发现定时执行的脚本每次执行都会报错,说找不到total_seconds方法。在脚本中导入platform包打印python_version,发现定时执行中使用的python居然是系统自带的python 2.6版本。非常奇怪,我之前已经安装配置了python 2.7,且每次自己在shell中都是使用的python 2.7,怎么crond中定时脚本还在使用老的python 2.6。
试了好几种方法都没解决,没办法了,使用which python命令获得当前shell中python的路径/usr/local/bin/python,然后把定时执行的命令改为了:
*/5 * * * * root /usr/local/bin/python abc.py
这样才解决了问题。