我有一个Python脚本,当从普通终端(和任何位置)运行时可以正常工作但是从cron运行时失败,抛出KeyError: 'PATH'
错误。
对this post的评论表明,这是因为cron运行的环境不同。当我按照建议使用env -i /bin/bash --noprofile --norc
进行切换时,KeyError
会被提升,并且似乎来自os.environ["PATH"]
未设置,我可以确认。
如何设置,以及什么?我可以为cron永久保留这个吗?
编辑:我的问题与其他一些问题非常相似,但不同之处在于它从Python中抛出了一个特定的错误 - 我认为保留这个问题会有所帮助,如果有人得到相同的KeyError
?
答案 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