gpt4 book ai didi

Python 脚本在 cron 作业中运行时引发错误,但在其他时间没有

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:46 26 4
gpt4 key购买 nike

我有一个 shell 脚本,其中包含 python 脚本的执行。当我在终端中手动运行它时,它工作正常。但是,当我在 cron 作业中执行 shell 脚本时,python 脚本失败。

错误显然是在将函数从模块 1 导入到模块 2 时触发的。错误引用的函数不在正在导入的函数中,语法错误应该引发错误的函数在其自身执行时也不在其中。

这是我运行 cron 作业时记录的错误:

File "/Users/me/module2.py", line 5, in <module>
from module1 import consolidate_rankings, build_all
File "/Users/me/module1.py", line 159
things = {row["thing"]: row for row in rows}
^

SyntaxError: invalid syntax

module2 脚本非常简单:

#!/usr/bin/env python 

from module1 import consolidate_rankings, build_all

consolidate_rankings()
build_all()

这是在 shell 脚本中调用它的行:

python/Users/me/module2.py

有人知道这里发生了什么吗?

最佳答案

您可能正在使用不支持字典理解语法的不同版本的 Python 从 cron 运行您的脚本。

要解决此问题,请在 shebang 行中明确添加所需的 Python 版本:

#!/usr/bin/env python2.7

或者通过正确的命令从 cron 启动脚本:

* * * * /usr/bin/python2.7 /path/to/script.py

关于Python 脚本在 cron 作业中运行时引发错误,但在其他时间没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24790008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com