【问题标题】:Cron job fails when executing python script with subprocess使用子进程执行 python 脚本时 Cron 作业失败
【发布时间】:2020-10-09 18:11:24
【问题描述】:

我的 cron 在这样设置时运行正常:

* * * * * usr/local/bin/python3 /Users/username/path/to/my/script1.py
* * * * * bash -c -l "/Users/username//path/to/my/script2.sh"

当我像这样在终端中手动运行上述脚本时,它也可以工作:

usr/local/bin/python3 /Users/username/path/to/my/script1.py
sh /Users/username//path/to/my/script2.sh

但是,当我尝试将这两个脚本作为调度为 cron 作业的 parent.py 脚本中的子进程运行时,它将无法运行并抛出此错误:

/bin/sh: usr/local/bin/python3: No such file or directory

我的 parent.py 代码:

import subprocess

subprocess.run('usr/local/bin/python3 /Users/username/path/to/my/script1.py && sh /Users/username//path/to/my/script2.sh', shell=True)

但是,当我像这样在终端中手动运行 parent.py 时,它可以正常工作:

usr/local/bin/python3 /Users/username/path/to/my/parent.py

我尝试将 #!/usr/local/bin/python3 添加到我的 parent.py 中,但这没有帮助。

有人可以帮忙吗?提前致谢。

【问题讨论】:

  • python真的可以位于usr/local/python3吗?如果您检查命令行,那么您需要前面的正斜杠来访问 /usr/local。
  • 添加斜线实际上解决了这个问题!谢谢!
  • 太好了,我已添加为答案。

标签: python shell cron subprocess


【解决方案1】:

你在 usr/local/python3 之前少了一个斜线!

应该是/usr/local/python3

更多详情请见this。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    相关资源
    最近更新 更多