Mac OS X Python GUI 管理员提示符

发布于 2024-09-07 21:47:27 字数 372 浏览 7 评论 0原文

我有一个 OS X Python 应用程序,它使用 wxPython 作为 GUI 控件。我希望在启动网络服务之前提示用户获得管理权限(类似于使用 Objective-C 中的授权服务 API)。

我发现的最接近的库是 Bob Ippolito 的 授权库,但它相当过时并且具有兼容性Snow Leopard (OS X 10.6.4 / Python 2.6.4) 的问题。

我的解决方法是创建一个 Objective-C 启动器,以管理权限运行 python 应用程序,但这感觉相当笨拙。

感谢您的帮助!

I have an OS X Python application that uses wxPython for it's GUI controls. I'm looking to prompt the user for administrative rights (akin to using the Authorization Service API in Objective-C) before starting a network service.

The closest library I have found is Bob Ippolito's Authorization library but it is fairly outdated and has compatibility issues with Snow Leopard (OS X 10.6.4 / Python 2.6.4).

My workaround would be to create an Objective-C launcher that runs the python application with administrative rights but that feels fairly kludgy.

Thanks for the help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

痴情换悲伤 2024-09-14 21:47:27

如果您需要运行的只是一个 shell 命令,请求提升权限,那么您可以这样做:

os.system("""osascript -e 'do shell script "<commands go here>" " with administrator privileges'""")

它将在 applescript 解释器中运行 shell 命令并提示用户输入其帐户凭据;使用 sudo 有效运行命令。

请注意,您会在命令中享受转义引号的乐趣,例如

os.system("""osascript -e 'do shell script "mkdir -m 0775 -p \\"%s\\" " with administrator privileges'"""%d)

希望有帮助!

If it's just a shell command that you need to run, requesting elevated privileges, then you can do this:

os.system("""osascript -e 'do shell script "<commands go here>" " with administrator privileges'""")

It will run a shell command within the applescript interpreter and prompt the user for their account credentials; effectively running the command using sudo.

Note that you'll have fun escaping quotes within your command, e.g.

os.system("""osascript -e 'do shell script "mkdir -m 0775 -p \\"%s\\" " with administrator privileges'"""%d)

Hope that helps!

醉梦枕江山 2024-09-14 21:47:27

您可以使用 Platypus 将整个脚本变成本机 Mac OS X 应用程序,从而以管理员权限运行整个脚本。

You could run your entire script with admin privileges by making it into a native Mac OS X application using Platypus.

半寸时光 2024-09-14 21:47:27

您可能想检查此处发布的另一个问题的答案:我应该使用哪种 API 将用户权限提升为 Mac OS X 中的超级用户?

You might want to check the answer to another question posted here: What kind of API should I use to elevate user privilege to super-user in a Mac OS X?

时光倒影 2024-09-14 21:47:27

以下是如何运行“ls”命令并询问密码

os.system("""
osascript -e 'do shell script "ls"  with administrator privileges'
""")

Here is how to run "ls" command and ask for the password

os.system("""
osascript -e 'do shell script "ls"  with administrator privileges'
""")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文