我用cron每隔30分钟执行一个python脚本,但它在import语句处停止,我不明白为什么,因为我没有得到任何反馈。在
在我的crontab中我有*/30 * * * * sh exec_script.sh
文件exec_script.sh
是
cd /home/ziofil/python_scripts
python script_30_mins.py
在python脚本中
^{pr2}$如果我从终端执行python script_30_minutes.py
,一切正常,但是对于cron,执行会在import
语句处停止(我读到“scriptis executed”,但没有其他内容)。在
出什么问题了?在
更新:我将import语句放在try/except
块中,它记录了异常:“No module named公用事业.utility_1". 我还试图将shell脚本中的PYTHONPATH变量设置为/home/ziofil/python_scripts
,但仍然不起作用。在
我发现了问题所在。@乌曼纳尔一直都是对的。在@mhawke指出cron的环境与我的终端不同之后,我认为python的二进制文件也可能不同,事实上是:我想要
/home/ziofil/anaconda3/bin/python
,而cron正在使用/usr/bin/python
。在我将脚本的最后一行修改为
/home/ziofil/anaconda3/bin/python script_30_mins.py
,一切正常!在cron
使用与终端不同的环境运行进程。可能您已经在终端中设置了PYTHONPATH
,但没有在cron环境中设置。如果是这种情况,可以将其添加到shell脚本中:相关问题 更多 >
编程相关推荐