繁体   English   中英

如何在 Mac OS X Catalina 10.15 中从我的 python 脚本执行 shell 脚本而没有 Operation not allowed (126) 错误消息?

[英]How to execute a shell script from my python script in Mac OS X Catalina 10.15 without Operation not permitted (126) error message?

环境:

Mac OS Catalina 10.15.7

蟒蛇 3.10

问题:

我正在尝试从 Mac OS X Catalina 10.15 中的 python 脚本执行 shell 脚本。

这是我的代码:

shell_script_install_Project = 'Project_Install.sh'
print(f"shell_script_install_Project:{shell_script_install_Project}")
command_install_Project = f"""/usr/bin/osascript -e 'do shell script "/bin/bash {shell_script_install_Project} >> {os.environ['HOME']}/Project/log.log" with prompt "Project need to install some programs." with administrator privileges'"""
proc = subprocess.Popen(command_install_Project, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
(output, err) = proc.communicate()
print(output.decode("utf8"))
print(err.decode("utf8"))
returncode_command_install_Project = proc.wait()
print(f"returncode_command_install_Project : {returncode_command_install_Project}")

这是输出:

shell_script_install_Project:Project_Install.sh    
0:164: execution error: /bin/bash: Project_Install.sh: Operation not permitted (126)

0:164: execution error: /bin/bash: Project_Install.sh: Operation not permitted (126)

returncode_command_install_Project : 1
returncode_command_install_Project : 1

Process finished with exit code 0

我尝试使用 sudo 运行脚本:

sudo python3 test2.py

但我遇到同样的问题:

shell_script_install_Project:Project_Install.sh

0:164: execution error: /bin/bash: Project_Install.sh: Operation not permitted (126)

returncode_command_install_Project : 1

如何在 Mac OS X Catalina 10.15 中从我的 python 脚本执行 shell 脚本而没有 Operation not allowed (126) 错误消息?

更新:

我按照评论中建议的说明进行操作:“在安全和隐私中更改“bash”程序的权限。但我遇到了另一个问题:

我试着用手做。 我有个问题。 我没有看到 /bin/bash。 当我想添加它时,我无权访问“bin”目录。

在此处输入图像描述

所以我为 sh 做了它,我编辑我的代码以使用 /bin/sh 而不是 /bin/bash 执行我的脚本

我得到相同的结果:

shell_script_install_Projectt:Project_Install.sh

0:162: execution error: /bin/sh: Project_Install.sh: Operation not permitted (126)

我发现如何在“全盘访问”中添加 bash: https ://apple.stackexchange.com/questions/376474/enabling-bin-bash-on-catalina-invisible-to-system-preferences-security-p

我重新启动我的 MAC 并重新启动终端。 但我仍然遇到同样的问题!

这是 Catalina 的权限问题,而不是特定的 Python 问题。 您必须向/bin/bash授予[完整磁盘访问权限]

在此处输入图像描述

有关apple.stackexchange的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM