2010-07-03 94 views
4

我有一個OS X Python應用程序,它爲它的GUI控件使用wxPython。我希望在啓動網絡服務之前提示用戶提供管理權限(類似於使用Objective-C中的授權服務API)。Mac OS X Python GUI管理員提示

我找到的最近的圖書館是Bob Ippolito的Authorization library,但它相當過時並且與Snow Leopard(OS X 10.6.4/Python 2.6.4)存在兼容性問題。

我的解決方法是創建一個Objective-C啓動器,它運行具有管理權限的python應用程序,但感覺相當不方便。

感謝您的幫助!

回答

2

使用Platypus將您的整個腳本製作爲本機Mac OS X應用程序,即可使用管理員權限運行您的整個腳本。

5

如果它只是你需要運行,要求提升權限的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) 

希望幫助!

+1

有沒有辦法做到這一點,所以用戶只需要輸入一次他們的密碼?如果我有其中的幾個,用戶每次調用時都需要輸入他們的密碼 – Parker 2011-09-23 19:36:27