使用Anaconda3在macOS上使用crontab运行Python脚本时出现问题

时间:2018-06-07 15:51:18

标签: python bash macos cron

在这里遇到crontab的问题,我对bash没有经验。

我桌面上有一个基本的python脚本。

#I'm not sure if I need to shebang here.
with open('hi.txt', 'a') as file:
file.write("Woo")

我已经尝试在我的crontab中导出环境变量,我知道我根据邮件文件夹中的反馈将crontab指向正确的目录。我相信我的问题是我不知道如何告诉解释器使用anaconda3执行文件。

crontab的:

PATH=/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
SHELL=/bin/bash
HOME=/Users/josephwright/

*/1 * * * * /anaconda3/bin/python3 /Users/josephwright/Desktop/cron/print.py

我之前在我的邮件文件夹中收到这些错误导致我相信问题是我不知道怎么告诉bash使用anaconda3执行文件:

/bin/sh: /Users/josephwright/Desktop/cron/print.py: /usr/local/env: bad interpreter: No such file or directory

或者

/Users/josephwright/Desktop/cron/print.py: line 2: syntax error near unexpected token `('
/Users/josephwright/Desktop/cron/print.py: line 2: `with open('hi.txt', 'a') as file:'

使用上面的crontab,我不再在我的邮件文件夹中收到错误,但我没有在文本文件中获取文本输出与我的python脚本在同一目录中。如果它没有将日志发送到我的邮件文件夹,我如何查看日志以便将来进行故障排除?

任何人都可以帮我指出正确的方向吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你真的有Anaconda代码锚定在绝对路径 / anaconda3 吗?这极不可能。它应该与您的主目录相关。因此,您的crontab文件中的PATH=/anaconda3/bin:...条目执行任何有用的操作的可能性极小。

  

我不确定我是否需要在这里进行shebang。

shell脚本应始终具有!#(shebang)行。如果没有该行,由于传统的兼容性原因,脚本通常会由 / bin / sh 进行评估。这就是为什么你会遇到这些语法错误。

如果修复PATH定义,将调用行更改为

就足够了

*/1 * * * * python3 cron/print.py