所以我有一个 Python 脚本,它只是从 API 中提取信息并发送电子邮件。当我手动运行它时,它可以工作。我设置了一个 cron 作业:
30 7 * * * /Users/myname/anaconda3/bin/python3 /Users/myname/Desktop/repo/somefolder/script.py >> /Users/myname/Desktop/filename.log 2>&1
但 filename.log 中的输出是:
/Users/myname/anaconda3/bin/python3: 无法打开文件 '/Users/myname/Desktop/repo/somefolder/script.py': [Errno 1] 不允许操作
我尝试了很多不同的事情,包括尝试不同的文件权限、以 root 身份创建 cron 作业、添加 shebang 和不同的 Python 路径,但除此错误外无法获得任何输出。到目前为止,我在网上找到的任何东西都没有给出不同的结果。
我使用的是 macOS Catalina 10.15.1。
我的脚本当前的文件权限:
-rwxr--r-- 1 myname staff 4161 13 Nov 18:07 /Users/myname/Desktop/repo/somefolder/script.py
任何帮助,将不胜感激!
最佳答案
我在尝试在 MacOS 中使用 crontab 运行 node.js 脚本时遇到了非常相似的问题。为了让我最终让它工作,我不得不添加 cron
和 zsh
到系统偏好设置中我的安全和隐私设置中的完整磁盘访问。
如何添加cron:
1. Apple Menu -> System Preferences -> Security & Privacy -> Full Disk Access
2. 单击锁定以允许更改
3.点击+号
4. 按 Command + Shift + G 并输入“/usr/sbin/”
5. 滚动以在二进制文件列表中找到“cron”
6.点击“打开”
如何添加 zsh:
1. 重复步骤 1 - 3
2. 按 Command + Shift + G 并输入“/bin”
3. 滚动以在二进制文件列表中找到“zsh”
4. 点击“打开”
在我这样做之后,我的 cron 工作运行没有问题。希望有帮助
关于python-3.x - 尝试使用 cron 运行 Python 脚本,得到 [Errno 1] 不允许操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58844669/