Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “如何修复”;“不允许操作”;当我在macos catalina中使用launchctl时_Python_Macos_Sh - Fatal编程技术网

Python “如何修复”;“不允许操作”;当我在macos catalina中使用launchctl时

Python “如何修复”;“不允许操作”;当我在macos catalina中使用launchctl时,python,macos,sh,Python,Macos,Sh,我正在设置一个launchctl服务器来定期运行python文件。所以我写了一个.plist文件,auto.sh文件,它工作得很好。 然而,在我安装Macos Catalina之后,它失败了。 我在auto.sh中写入“ls-l”以检查文件权限, 日志显示: ls: .: Operation not permitted python3: can't open file 'auto.py': [Errno 1] Operation not permitted 我怎样才能把它修好?非常感谢你 这

我正在设置一个launchctl服务器来定期运行python文件。所以我写了一个.plist文件,auto.sh文件,它工作得很好。 然而,在我安装Macos Catalina之后,它失败了。 我在auto.sh中写入“ls-l”以检查文件权限, 日志显示:

ls: .: Operation not permitted
python3: can't open file 'auto.py': [Errno 1] Operation not permitted 
我怎样才能把它修好?非常感谢你

这是我的密码:

auto.sh:

#/bin/bash
. ~/.bash_剖面图
康达激活基地
cd/用户/瓦斯/文件/
ls-l
python3 auto.py
我把这样的.plist文件放在/Users/gassy/Library/LaunchAgents/com.gassy.fangzhou.plist中

    ...
    <key>Program</key>
    <string>/Users/gassy/auto/launch.sh</string>
    ...
。。。
节目
/用户/gassy/auto/launch.sh
...

我认为问题不在于Python,而在于
auto.py
上的文件权限或通向它的路径。哪个用户帐户用于运行脚本?该用户是否对这些可执行文件和父目录都具有必要的权限?我怀疑目录权限的原因是
ls
auto.py
一起失败


如果您将所有内容移出
/Users/gassy/Documents
并移动到另一个位置(可能位于
/opt
/var
或类似位置),然后确保权限正常,您可能会有一些运气。我知道macos在运行
python3 auto.py
之前,在
bash脚本中使用
chmod
命令更改文件的权限


chmox+x auto.py
应该可以,但是我建议您阅读更多关于它的内容,并针对您的用例进行详细说明

终于明白了

这是一个与Catalina新权限系统相关的问题,
/bin/bash
需要具有[完整磁盘访问]权限


对@mingxin解决方案的修改对我起了作用:基本上相同的步骤,但不是在安全与隐私中提供对
bash
的完全磁盘访问,而是提供对
python3
的完全访问(在我的Big Sur macOS系统上,它位于
/usr/bin
)。

这是我最初的建议,但我认为问题不仅仅是
auto.py
。请注意,
ls
命令在该目录上也失败了。只需补充一点:我不会尝试摆弄
/Users/gassy/Documents
上的权限,我在尝试修改那些“特殊”macos目录时玩得不太开心。最好别管它,把你的脚本移到不会让macos生气的地方……谢谢你的帮助~我尝试将
auto.sh
移到
\opt
并通过
launchctl start com.gassy.fangzhou
在launchctl中运行它。但是,它会引起与相同的错误before@Lucas您是否也将
auto.sh
编辑为
cd/opt
,而不是
cd/Users/gassy/Documents
?我将
auto.py
放在
/Users/gassy/Documents
的另一个文件夹中,现在我将其移动到
/opt
,它可以工作了!我检查根目录,发现
/Users/gassy/Documents
的权限是
drwx-----@
。就像Macos Catalina更改了
/Users//Documents
的权限一样。非常感谢你的帮助!谢谢这也有助于快速将bash放入该列表:这是我的问题,但我也忘记了.sh脚本中的shebang,因此默认情况下它在“sh”而不是“bash”中运行,所以记住您的shebang如下:#/bin/bash