解决:crontab执行python no model name xxx问题

启动定时:crontab -e

50 16 * * * source /etc/profile && cd /home/AA/BB && nohup python remindmail.py > remindmail.log 2>&1 &

但是并没有定时产生,查看log

Traceback (most recent call last):
  File "remindmail.py", line 5, in <module>
    import MySQLdb
ImportError: No module named MySQLdb

这就很奇怪,我直接进行在终端运行

$ python remindmail.py  # 这就可以直接运行,喵喵喵?

百度了一下之后,才知道和路径有关,所以开始解决

确认python路径

which python
~/Python/ENV/bin/python

然后终端实现

$ ~/Python/ENV/bin/python remindmail.py  # 可行

然后放入crontab里面,和刚开始唯一的区别是,指定了python的运行路径


50 16 * * * source /etc/profile && cd /home/AA/BB && nohup ~/Python/ENV/bin/python remindmail.py > remindmail.log 2>&1 &

成功


尾巴

# 可见各个版本之间的问题
$ /usr/local/bin/python -V
Python 2.7.9

$ /usr/bin/python -V
Python 2.6.6

$ which python  # 这是我们直接输入python xx.py执行的路径
/usr/local/bin/python

我们最终的目的就在于,模拟终端输入,只是用crontab进行定时例行而已,crontab里面估计默认的路径,所以需要用绝对路径来做,对于没有配置好环境的服务器,在此操作时候更加需要使用绝对路径!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值