[英]Crontab won't run python on Mac OS
我已经找到了所有可以找到的答案并尝试了所有方法,但我仍然无法让我的 crontab 运行 python。 我什至创建了一个 shell 脚本来运行 python,认为隔离会有所帮助,但它仍然不起作用。
我在 crontab 中有以下条目
* * * * * echo "hello" >> /tmp/test2.txt
* * * * * work.sh
第一行每分钟运行一次,以便我可以验证 cron 正在运行。 我已经验证它正在运行。 每分钟我都会在 test2.txt 中看到一个新的“hello”
第二行运行以下名为 work.sh 的脚本
#! /usr/bin/env zsh
echo "Hello World!" >> /tmp/test2.txt
/opt/miniconda3/bin/python3.7 hellopy.py
hellopy.py 然后将“Hello from Python”写入 test2.txt,如下所示:
with open('/tmp/test2.txt','a') as test_txt:
test_txt.write("Hello from Python")
当我手动运行 work.sh 时,我在 test2.txt 中得到了我所期望的:
Hello World!
Hello from Python
但是当我让 cron 运行一段时间并查看 test.txt 时,我看到的只是来自直接 cron 行的条目,然后是来自 work.sh 的 echo 命令。 python 行不写入文件。 文本“Hello from Python”没有出现。
hello
Hello World!
hello
Hello World!
hello
Hello World!
我检查了 python 文件-rwxr-xr-x
和文本文件-rwxrwxrwx
的权限,它们看起来很好。
所以我知道
但是由于某种原因,当 crontab 运行 shell 脚本时, python 命令不起作用。 我也尝试了以下方法,但都不起作用。
我在所有搜索中不断遇到的解决方案与文件权限和绝对路径有关。 我已经尝试了所有可能的组合,但似乎没有任何帮助。 我完全被困住了。 任何帮助,将不胜感激。
从@chepner 为后代捕获解决方案:
问题是 cron 期望在我的主目录中找到我的 python 文件,但我已将 python 文件保存在另一个文件中。 将文件移动到主目录后,一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.