【发布时间】: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