问 题
一直纳闷,main外面的语句可以执行,但是在main中就不能进入执行。
在外面有命令可以成功执行。
尝试
因为重定向到日志没有记录错误输出,一度以为不会出现错误…(打脸),在crontab重定向标准错误输出后,
python /home/project/xxx/XXX.py >>/home/project/xxx/log.log 2&1
查看日志,发现在main中一处引用文件地方出错,== 没有找到该文件 ==。
原因是,我在脚本里用的相对路径,而在crontab中它执行环境本地路径 测试为"/root", 也同样看出为什么crontab中命令都是使用绝对路径!
# 测试代码
0 9 * * * pwd >> /root/xx/log 2>&1
所以使用相对路径绝对是找不到
而在命令行执行的目录正好是py脚本所在目录,所以能够执行,若跑到其他目录执行py脚本也同样会报找不到文件!
解决
import os
pwd = os.getcwd()
cookieFile = os.path.join(pwd,"chaoXingCOMCookies.txt")