Crontab无法执行Python脚本

发布于 2021-01-29 17:29:46

crontab无法执行Python脚本。我用来运行Python脚本的命令行是可以的。

这些是我尝试过的解决方案:

  • #!/usr/bin/env python在顶部添加main.py
  • PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin在顶部添加crontab
  • chmod 777main.py文件
  • service cron restart

我的crontab是:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

*/1 * * * * python /home/python_prj/main.py

/ var / log / syslog中的日志为:

Nov  6 07:08:01 localhost CRON[28146]: (root) CMD (python /home/python_prj/main.py)

没什么

main.py脚本从中的其他模块调用某些方法python_prj,这有关系吗?

有人可以帮助我吗?

关注者
0
被浏览
143
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    main.py脚本从python_prj下的其他模块调用某些方法,这有关系吗?

    是的,它确实。所有模块都需要在运行时找到。您可以通过多种方式完成此操作,但最合适的方法是在crontab中设置PYTHONPATH变量。

    您可能还希望在crontab中设置MAILTO变量,以便获得包含任何回溯的电子邮件。

    [更新]这是我的crontab的顶部:

    www:~# crontab -l
    
    DJANGO_SETTINGS_MODULE=djangocron.settings
    PATH=...
    PYTHONPATH=/home/django
    MAILTO="cron-notices@example.com"
    ...
    # m h  dom mon dow   command
    10-50/10 * * * *               /home/django/cleanup_actions.py
    ...
    

    (每隔10分钟运行一次清理操作,但每小时除外)。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看