下面是我写的定时crontab脚本(之前看了网上的博客所以引入环境变量):
20 19 * * * /etc/profile; /usr/bin/env python /home/Users/model_score.py
查看日志说缺少某个包。
但是外部单独执行 /usr/bin/env python /home/Users/model_score.py 是OK的。
网上查看了大量的资料,基本都说报错缺少包是由于crontab中默认的环境变量和外部不一样导致的,但是我按照方法加入了环境变量了还是报错,请问这个问题到底在哪?哪位大神指点下?谢谢!
问题找了,还是自己回答自己吧,最终的代码张这样:
389***/home/u_jrd_lv1/anaconda2/bin/python/home/u_jrd_lv1/Users/hank.yao/M1_M2_model/model_score.py>>/home/u_jrd_lv1/Users/hank.yao/M1_M2_model/cron2.log2>&1
有个关键的地方,虽然在外部执行python/home/u_jrd_lv1/Users/hank.yao/M1_M2_model/model_score.py
没问题,但是写到crontab中时python要写全路径,而且必须先查明这个python到底被安装在哪里了!!用whichpython来查看,我被坑是因为linux系统上好几个不同版本的python,我想当然的以为python是安装在/usr/bin/env中的第一个默认位置,其实不是,linux系统往往自带一个老的python版本,所以一般会重新安装一个新的,所以/usr/bin/env这个位置是不对的,里面不会有后加入的lib。
缺少包的错误,那就看看那个包在crontab执行的账户环境下能不能找到。主要是对比这个
应该是脚本里面的python不对吧
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。