通过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
它执行罚款并返回:

选择用户:

  • 客人
  • 我的用户名

    选择需要清理的帐户(输入相应的号码):

  • 在输入“2”之后,按enter键,脚本运行良好

    但是,当我跑步时:

    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拖动到该窗口(您可能需要先按下该窗口左下角的小锁解锁)