从cron运行脚本时的KeyError'PATH'

时间:2017-09-19 15:05:15

标签: python cron

我有一个Python脚本,当从普通终端(和任何位置)运行时可以正常工作但是从cron运行时失败,抛出KeyError: 'PATH'错误。

this post的评论表明,这是因为cron运行的环境不同。当我按照建议使用env -i /bin/bash --noprofile --norc进行切换时,KeyError会被提升,并且似乎来自os.environ["PATH"]未设置,我可以确认。

如何设置,以及什么?我可以为cron永久保留这个吗?

编辑:我的问题与其他一些问题非常相似,但不同之处在于它从Python中抛出了一个特定的错误 - 我认为保留这个问题会有所帮助,如果有人得到相同的KeyError

1 个答案:

答案 0 :(得分:1)

您需要定义环境变量,例如PATH文件中的/etc/crontab

例如:

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

# m h dom mon dow user   command
01 01 * * 1-5 root python /path/to/file.py

请参阅:https://stackoverflow.com/a/2409369/1513933