私の理解では、Apple のデフォルト以外の Python をビルドに使用している限り、エンド ユーザーは py2app でビルドされたアプリを実行するために自分で Python をインストールする必要はありません。私自身の環境でアプリを開発およびテストする際に、明らかに Python がインストールされています。具体的には、Apple独自のものではなく、python.orgをインストールしてpyenvを組み込みました。しかし、Python をインストールしていないエンドユーザーにアプリを渡すと、次のようになります。
Python ランタイムが見つかりませんでした。Python のフレームワーク ビルドをインストールするか、このアプリケーションの Info.plist ファイルで PyRuntimeLocations 配列を編集する必要がある場合があります。
2行目は関係があります。記載されていることが真実である場合、エンドユーザーのインストールの可能なすべての場所に対して個別のアプリ インスタンスを構築する必要があります (例:など/usr/bin
) 。/Library/Frameworks
更新: Info.plist は以下を定義します:
<key>PythonExecutable</key>
<string>/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python</string
しかし、問題のエンド ユーザーは にシステムをインストールしただけ/usr/bin
です。
これは、すべてのエンドユーザーが外部にインストールされた Python を持っている必要があり、それが住んでいる必要があることを意味しますか?/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
Apple 以外の Python を持っていない場合はどうなりますか? 彼らがApple以外のPythonを持っていて、それが2.6ではない場合はどうなりますか? このややハードコーディングされた依存関係をどのように回避できますか?