4

GUI コントロールに wxPython を使用する OS X Python アプリケーションがあります。ネットワーク サービスを開始する前に、(Objective-C で Authorization Service API を使用するのと同様に) ユーザーに管理者権限を求めるプロンプトを表示したいと考えています。

私が見つけた最も近いライブラリは Bob Ippolito のAuthorization ライブラリですが、かなり古く、Snow Leopard (OS X 10.6.4 / Python 2.6.4) との互換性の問題があります。

私の回避策は、Python アプリケーションを管理者権限で実行する Objective-C ランチャーを作成することですが、それはかなりぎこちなく感じます。

助けてくれてありがとう!

4

4 に答える 4

5

実行する必要があるのが単なるシェル コマンドであり、昇格された特権を要求する場合は、次のようにすることができます。

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

Applescript インタープリター内でシェル コマンドを実行し、ユーザーにアカウント資格情報を要求します。sudoを使用してコマンドを効果的に実行します。

コマンド内で引用符をエスケープするのが楽しいことに注意してください。

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

それが役立つことを願っています!

于 2011-06-24T05:20:08.683 に答える
2

Platypusを使用してネイティブ Mac OS X アプリケーションにすることで、スクリプト全体を管理者権限で実行できます 。

于 2012-03-13T01:42:08.007 に答える
1

ここに投稿された別の質問への回答を確認することをお勧めします: Mac OS X でユーザー権限をスーパーユーザーに昇格するには、どのような API を使用する必要がありますか?

于 2010-07-03T09:19:28.057 に答える