yaoheng52199 2017-06-18 03:38 采纳率: 100%
浏览 2758
已采纳

Linux下用crontab执行定时python任务报错

下面是我写的定时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中默认的环境变量和外部不一样导致的,但是我按照方法加入了环境变量了还是报错,请问这个问题到底在哪?哪位大神指点下?谢谢!

  • 写回答

3条回答 默认 最新

  • yaoheng52199 2017-06-19 01:48
    关注

    问题找了,还是自己回答自己吧,最终的代码张这样:
    38 9 * * * /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.log 2>&1

    有个关键的地方,虽然在外部执行 python /home/u_jrd_lv1/Users/hank.yao/M1_M2_model/model_score.py

    没问题,但是写到crontab中时python要写全路径,而且必须先查明这个python到底被安装在哪里了!!用which python来查看,我被坑是因为linux系统上好几个不同版本的python,我想当然的以为python是安装在/usr/bin/env中的第一个默认位置,其实不是,linux系统往往自带一个老的python版本,所以一般会重新安装一个新的,所以/usr/bin/env这个位置是不对的,里面不会有后加入的lib。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看