2012-06-05 19 views
6

PythonとMac OSのアプリケーションの統合について学び始めました。 (私はCocoaからPythonにいくつかのメソッドを呼びたいと思っています。)Scripting Bridge、PyObjC、およびpy2appという用語を使いました。違いは何ですか? PyObjCはスクリプトブリッジの一例ですか?そして、py2appはいつ演奏されますか?Scripting BridgeとPyObjCとpy2appの比較

答えて

7

短いバージョン:PyObjCはMac OS X APIと呼ばれる方法で、Scripting Bridgeは他のアプリケーションのスクリプトインターフェイスと話す方法です。より詳細に:

PyObjCは、Python言語とObjective Cランタイム(およびそのブリッジの上に簡単に構築されたCocoaラッパーのセット、および便利な便利なもの)の間の橋渡しです。 Cocoaメソッドを呼び出す場合は、PyObjCを使用します。通常は、CocoaまたはFoundationのいずれかをインポートします。

Scripting Bridgeは、Python言語とApple Eventベースのスクリプトシステムの間の橋渡しです。別のアプリケーションのスクリプトインターフェイスを呼び出す場合は、Scripting Bridgeを使用します。 (Scripting BridgeはNSArraysなどのものを扱うため、Scripting Bridgeを使用している場合は、ほとんどの場合、Foundationをインポートすることもできます)

PyObjCはスクリプトブリッジの例ではありません。スクリプティングブリッジの例としては、Scripting Bridge、またはAppscript(Appleより優れていて、もはや維持されていないもの)があります。

py2appは、これらのいずれとも関係がありません。これはPythonアプリケーションを、必要なすべての拡張モジュールとともに、必要に応じて多くのPythonインタプリタとともに、ユーザーに配布できる単一の.appバンドルにまとめて、ダブルクリックするだけですそれを実行します。もちろん、そのようなアプリケーションのほとんどはGUIを備えており、その多くはPyObjCを使用して(PyQtやwxPythonなどを使用するのではなく)直接ココアでGUIを作成しますが、実際の接続はありません。

+0

また、どのアプリケーションと統合しようとしているのかに応じて、 'py-appscript'がScripting Bridgeよりも良い選択肢になるかもしれません。開発者の非推奨免責条項を延期しないでください。これは、特にファンキーなスクリプトインターフェースを備えたアプリにとって、今でも最高のApple Eventスクリプトインターフェースです。 http://pypi.python.org/pypi/appscript/ –

+3

私が上で述べたように、Appscriptはもはや維持されていません。実際には、他の人からのパッチをもはや受け入れていません。結局のところ、他の誰かがそれを引き継がない限り、それは動作を停止するでしょう。つまり、私はまだPythonとObjCの両方の複数のアプリケーションでそれを使用していますが、Scripting Bridgeに切り替えるのではなく、自分でパッチを当てて、iTunesやFinderの問題を回避しようとしています...しかし、新しいユーザーにそれを推薦することについて。 – abarnert

+1

申し訳ありません。私はAppscriptのあなたの言及を見落とした。私はあなたの評価に同意します。 –