我最近升级到MacBigSur,并注意到我的Python 3.8 cron作业已停止工作。在我自己的bash shell帐户下,我可以毫无问题地运行它
davea$ cd /Users/davea/Documents/workspace/article_project; source ./venv/bin/activate; python3 manage.py check_duplicates
在我的crontab中,我有这样的设置,它在升级之前就可以工作了
*/5 * * * * /bin/bash -l -c 'cd /Users/davea/Documents/workspace/article_project; source ./venv/bin/activate; python manage.py check_duplicates >> /Users/davea/logs/record2.txt 2>&1'
但是,升级后,我注意到我的命令从未运行过,我在日志文件中看到了这个问题
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3: can't open file 'manage.py': [Errno 1] Operation not permitted
这些是我的“manage.py”文件上的权限/组
davea$ ls -al manage.py
-rwxrwxr-x 1 davea staff 866 Apr 15 2019 manage.py
我还需要做什么才能使cron作业再次运行
事实证明,在新的Mac OS中,需要启用额外级别的权限。在“系统首选项”中的“安全和隐私”下,我单击了“隐私”选项卡,然后将“cron”添加到“完整磁盘访问”列表中
然后,cron作业在没有权限错误的情况下运行
这看起来像是SIP或其他特定于mac的访问权限错误,尤其是在升级之后。可以是:https://osxdaily.com/2018/10/09/fix-operation-not-permitted-terminal-error-macos/
我在使用cron处理venvs时也遇到了很多问题,可能与此有关:https://stackoverflow.com/a/7031758/13113166
同样奇怪的是,错误来自
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3
,而我认为如果正确激活,它应该来自您的venv我认为在这种情况下,python3被认为是“任何用户”,并且具有
-rwxrwxr
权限,它只拥有读取文件的权限,尝试运行文件夹中的chmod 775 manage.py
,向manage.py
添加由“任何用户”执行的权限(rigths应该设置为-rwxrwxr
),希望它能有所帮助。 编辑:从技术上讲,读取权限应该足以让python运行一个文件,但我看不出出现此错误的另一个原因,如果您找到一个原因,我会很感兴趣相关问题 更多 >
编程相关推荐