2

py2app を使用して Python スクリプトから .app バンドルを作成しました。問題は 2 つあります。

  1. 引数エミュレーションは、元の Python スクリプトで機能する引数を受け入れないため、正しく機能していないようです。

  2. .app bundle 形式は、「open」で開く必要があります。「open」は OSX 10.6 以降からの引数の受け渡しのみをサポートしており、以前の OSX バージョンのサポートが必要です。

コマンドライン引数を受け入れることができる OSX 用の凍結されたバイナリを作成する適切な方法は何ですか?

4

2 に答える 2

2

一般に、OS X アプリ バンドルは、コマンド ラインから起動してコマンド ラインから引数を渡すようには設計されていません (お気づきのとおり、OS X 10.6 ではこれに対するサポートが追加されました)。アプリにファイルを渡す標準的なメカニズムはApple Eventsです。これは、アプリによって処理されるタイプのドキュメント ファイルの Finder のOpenコマンド、またはファイルが Dock のアプリのアイコンにドロップされたときに使用されます。 py2appは、標準の Mac GUI アプリケーションのように使用されるアプリケーションをパッケージ化するように設計されています。特に、起動プロトコルを使用し、Apple Events を介してファイルを受信します。コマンドライン ユーティリティを作成するようには設計されていません。後者をパッケージ化する場合は、通常のDistutils のパッケージング方法を使用してください。. または、スクリプトが 1 つのファイルのみで構成されている場合は、ここで説明されているようにスタンドアロンのシバン スクリプトにすることができます。

また、OS X では特定の GUI インターフェイスを使用するために本格的なアプリとして実行する必要がありますが、OS X 上の Python 自体は通常、フレームワークにインストールされ、フレームワーク内にPython.appインストールされたバンドル内から実行されます。(これは、Apple 提供の Python、インストーラーによってpython.orgインストールされたもの、およびインストールされた Python に当てはまります。) これらのフレームワークMacPortsPythonのいずれかによってスクリプトが実行されると、独自のアプリ バンドルを構築する必要なく、OS X によって GUI アプリとして認識されます。 .

于 2011-01-03T17:45:08.827 に答える
1

pyinstallerを使用すると、OS X 用の Linux ライクなコマンド ライン バイナリ実行可能ファイルを簡単に作成できます。また、Linux および Windows OS 用にも実行できます。

私は py2app と pyinstaller の両方を使用して OS X 実行可能ファイルを実行しましたが、私にとっては pyinstaller の方が優れており、構成が簡単です。ただし、py2app はアプリ バンドルを作成する場合でも、引数を処理できます。したがって、建物の設定が間違っていると考えてください。

于 2011-01-18T19:15:16.523 に答える