通过osascript启动时,Python脚本不起作用
好的,当我运行这个命令时:通过osascript启动时,Python脚本不起作用,python,python-3.x,python-3.5,errno,osascript,Python,Python 3.x,Python 3.5,Errno,Osascript,好的,当我运行这个命令时: sudo python3.5 /path/to/my/script.py 它执行罚款并返回: 选择用户: 客人 我的用户名 选择需要清理的帐户(输入相应的号码): 在输入“2”之后,按enter键,脚本运行良好 但是,当我跑步时: osascript -e 'do shell script "python3.5 /Path/to/my/script.py" with administrator privileges' 我得到了预期的弹出屏幕,在其中输入我的sudo
sudo python3.5 /path/to/my/script.py
它执行罚款并返回:
选择用户:
osascript -e 'do shell script "python3.5 /Path/to/my/script.py" with administrator privileges'
我得到了预期的弹出屏幕,在其中输入我的sudo密码,但之后它抛出了错误:
OSError:[Errno 9]错误的文件描述符(1)需要清理(输入
相应编号:))
任何人对此有任何想法吗?任何帮助都将不胜感激
PS;关于为什么需要此方法的一些背景知识-->我正在使用预脚本(也是用python编写的)需要从中执行myscript.py。我的presscript.py不需要管理员权限。但是,有时,它需要调用myscript.py,而myscript.py不需要管理员权限。因为我不想将sudo密码硬编码到我的任何脚本中,我想得到一个弹出框,询问我是否需要管理员权限或者它。我想,告诉我的pre-script.py在我上面提到的osascript命令上运行subprocess.Popen([])就可以了。但是,为此,我首先需要让osascript命令正常工作。啊,所以我自己想出了这个办法。正如预期的那样,它必须与特权有关。不知何故,
“使用shell脚本“
通过其他权限运行,然后在终端中输入命令。终端中的“sudo命令”
不等于(完全)具有管理员权限的“do shell脚本[脚本]”
对我来说,修复它的是导航到:
系统首选项-->安全和隐私-->隐私选项卡-->可访问性
然后将Python.app和Terminal.app拖动到该窗口(您可能需要先按下该窗口左下角的小锁解锁) 啊,所以我自己想出了这个。正如所料,这与特权有关。不知何故,
“DoShell脚本”
通过其他权限运行,然后在终端中输入命令。终端中的“sudo命令”
不等于(完全)具有管理员权限的“do shell脚本[脚本]”
对我来说,修复它的是导航到:
系统首选项-->安全和隐私-->隐私选项卡-->可访问性
然后将Python.app和Terminal.app拖动到该窗口(您可能需要先按下该窗口左下角的小锁解锁)