3

私の理解では、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ではない場合はどうなりますか? このややハードコーディングされた依存関係をどのように回避できますか?

4

1 に答える 1