0

Windows アプリケーションを OS X 10.6.8 に移植しています。これは私にとって新しいプラットフォームであり、いくつかの困難に直面しています。

アプリケーションは、サブプロセス呼び出しのおかげで (クロム組み込みフレームワークに基づく) ブラウザーを起動する小さな Web サーバー (ボトル + ウェイトレス) です。

ブラウザはアプリ ファイルであり、GUI から起動すると正常に動作します。

私はこの方法でそれを起動しています:

subprocess.Popen([os.getcwd()+"/cef/cefclient.app", '--url=http://127.0.0.1:8100'])

残念ながら、これは で失敗しOSError: permission deniedます。

sudo同様の結果でスクリプトを実行しようとしました。

次のコマンドを使用して、シェルからアプリを起動できます。

open -a "cef/cefclient.app" --args --url-http://127.0.0.1:8100

しかし

subprocess.Popen(['open', '-a', os.getcwd()+'/cef/cefclient.app', '--args', '--url-http://127.0.0.1:8100'])

次のエラーで失敗します

FSPathMakeRef(/Users/.../cefclient.app) failed with error -43.

この問題を解決する方法はありますか?

4

2 に答える 2

5

ファイルcefclient.appは実際にはディレクトリ (具体的にはアプリケーション バンドル) であり、アプリケーションの実行可能ファイルではありません。実際の実行可能ファイルはバンドル内にあり、パスはContents/MacOS/executable_name. したがって、それを起動するには、次のようにします。

subprocess.Popen([os.getcwd()+"/cef/cefclient.app/Content/MacOS/executable_name",
                  "--url=http://127.0.0.1:8100"])
于 2012-10-25T15:40:53.743 に答える
1

あるいは、

os.system('open -a "cef/cefclient.app" --args --url-http://127.0.0.1:8100')

stdin / stdout を制御するか、アプリを起動するだけで十分かによって異なります。

于 2012-10-25T15:45:38.820 に答える