python脚本crontab执行坑,Pythonxxx.


大概会出现这样的情况。

Python xxx.py 跑的好好的。然后用crontab去执行Python就会发现报错。比如我遇到的这种报错是

主要是有诸多的报错,最开始没有注意到这个问题。
File "/usr/local/lib/python3.7/configparser.py", line 958, in getitem
raise KeyError(key)

分析。很明显加载不到该py文件。在思考,我 Python xxx.py 有可能是跟我Linux系统有几个不同版本的Python 有关。比如该Python版本没有对该函数做兼容等。

于是尝试1

在crontab 里加上 /usr/local/bin/python3.10 xxx.py ,也还是不行。

尝试2 在 Python前加 source $HOME/.bash_profile; 也不行

最终在下国际象棋的时候。在思考。路径的问题。然后就想到了项目中有这样的

import configparser

cf = configparser.ConfigParser()
cf.read('../conf/config.ini')

这里如果采用相对路径./config.ini亦会导致无法正常读取。

所以如果用到crontab的话。项目内的路径也得写个绝对路径。感觉这挺不友好的。应该还有其他的解决办法。只是。。。我还没想到

评论关闭