crontab 执行python脚本不生效?(续)

Author:闫玉良
Linux 设置定时任务,crontab 执行 python 脚本不生效的问题:

更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

尝试方法:

1.给 python 脚本第一行添加如下代码:

1
#!/usr/bin/python

当然 python 解释器的路径要按照自己情况进行填写。

2.如果 python 脚本报错,模块未找到等等,尝试如下方式:

1
2
import sys
sys.path.append('xxx<第三方模块的路径>')

如果是虚拟环境,有可能此路径不同,可以通过下列命令查看:

1
2
>import elasticsearch
>elasticsearch.__file__

然后将路径复制到 sys.path.append('') 中的引号即可,如:

1
D:\\E\\python_virtual\\fbl5n\\lib\\site-packages

3.python 脚本中不涉及复杂的逻辑,简单的函数即函数调用即可,如果出现下列代码,请去掉:

1
if __name__ == '__main__':

它会将 crontab 在调用的时候搞晕。

4.可以写一个 shell 脚本去调用 python 脚本,如下:

1
2
3
#!/usr/bin/bash
cd /opt
/usr/bin/python3 mail_reminder.py >> log.txt 2>&1

0 表示stdin标准输入
1 表示stdout标准输出
2 表示stderr标准错误
& 表示等同于的意思
2>&1 表示2的输出重定向等同于1

5.当报错编码问题时可以尝试使用如下方法:

1
2
3
#!/usr/bin/bash 
cd /opt
PYTHONIOENCODING=utf-8 /usr/bin/python3 mail_reminder.py >> log.txt 2>&1
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • 页面访问量: 独立访客访问数:
  • 更多精彩文章请关注微信公众号『全栈技术精选』,id 为『Pythonnote』

请我喝杯咖啡吧~

支付宝
微信