py2app
Macで実行する必要があります。
このpy2app
コードは、実行に使用されているPythonのコピーを使用して、スタンドアロンの実行可能ファイルをビルドします。そのPythonがMacビルドでない場合(Windowsで実行している場合はそうではありません)、Mac実行可能ファイルを作成することはできません。
libpython.dylib
技術的には、エラーメッセージは、またはPython.framework
に関連付けられたを見つけることができないことを示していますsys.executable
。これは本当ですが、この場合はもっと役立つ可能性があります。
py2app
のような代替手段がありますがcx_freeze
、それらはすべて同じように機能します。つまり、実行に使用されたPythonインストールから実行可能ファイルを構築します。
したがって、WindowsでMac実行可能ファイルを作成する場合、それを自動化する方法はありません。
しかし、いくつかの可能性があります。
まず、中古のMacMiniをおそらく100ドル程度で購入できます。開発用にセットアップし、(環境設定の共有ペインで)リモートログインアクセスをオンにして、隅で実行したままにします。Windowsからは、小さな4ライナーssh
スクリプトを使用して、ソース、ソース、結果をチェックアウトし、Windowsボックスに転送するようにMacに指示できpy2app
ますzip
(scp
または、Windowsファイル共有を介してコピーするかftp
、チェックするか、チェックします)。ソース管理などに)。
何らかの理由でそれが不可能な場合は、少なくともたまにMacにアクセスできることを願っています。(そうでない場合、どのように物事をテストするつもりですか?)その場合は、でアプリを作成して圧縮しpy2app
、テンプレートとして使用できます。新しいビルドを作成するたびに、テンプレートの内容を変更するだけで、Windowsでそれを実行できます。
メインfoo.py
スクリプトはになりfoo.app/Contents/Resources/foo.py
ます。他のPythonモジュール(標準ライブラリ、サードパーティ、または独自のコード)は、いくつかの例外を除いて、のfake-standard-libraryzipファイルに入りますfoo.app/Contents/Resources/lib
。すべてのC拡張モジュールは、のようなディレクトリに入りますfoo.app/Contents/Resources/lib/python2.7/lib-dynload
。
C拡張機能を変更しない限り、Pythonの新しいバージョンにアップグレードするか、手動でインストールする方法がわからない新しいサードパーティライブラリを追加します(たとえば、経由で卵として入手したためeasy_install
)。これは引き続き機能します。これらのいずれかを行う場合は、Macに戻って、を使用して新しいテンプレートを作成する必要がありますpy2app
。
Macにまったくアクセスできない場合はpy2app
、必要なものがすべて含まれている他のプロジェクト用に事前に作成されたアプリを見つけることができる場合があります。その場合は、それをテンプレートとして使用できます。しかし、これは非常に大きな問題です。