Mac OS X 10.6 で py2app を使用してアプリ バンドルを構築しようとしています。アプリは、32 ビット用にのみコンパイルされたいくつかのライブラリを使用するため、アプリを実行すると、「適切な 64 ビット アーキテクチャがありません」という ImportError が発生します。アプリを強制的に 32 ビット モードで実行するように py2app に指示するにはどうすればよいですか?
5 に答える
32 ビット モードでのみ実行する場合は、64 ビット アーキテクチャは必要ありません。ditto
そのため、ユーティリティを使用して、結果のアプリケーション バンドルから非 i386 アーキテクチャをすべて取り除くことができます。
例:
ditto --rsrc --arch i386 YourApplication.app YourApplicationStripped.app
アプリケーション バンドルはより小さくなり、64 ビット Intel システムでも 32 ビット アプリケーションとして確実に実行されます。
マニュアル: http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/ditto.1.html
または、ターミナルで実行します。man ditto
1 つの方法は、py2app で python.org からダウンロード可能な 32 ビットのみのバージョンなど、32 ビットのみの Python を使用することです。もう 1 つは、生成されたアプリ バンドルの Info.plist に、場合によっては を設定するLSArchitecturePriority
ことです。詳細については、こちらを参照してください。i386
ppc
多くの苦労とwxの動作を試みた後、この方法を使用して動作させることができました.インストールしたバージョンも含めました
.これは私にとって唯一の機能でした..
py2applet --arch=i386 -i (includes here) --make-setup (pythonfiles, icon)
私のはこれに少し似ています
py2applet --arch=i386 -i wx, platform --make-setup print.py print.icns convert.py
wxPython2.8-osx-unicode-py2.7
setuptools-0.6c11-py2.7.eggでpython2.7 をインストールし
てから
sudo easy_install-2.7 py2app
これはpy2appletのバージョン0.6.4をインストールしました
OK、私は Vebjorn の 1 つのオフィスで働いているので、回答を投稿するのに最適な場所である可能性があります。py2app オプションの辞書が与えられた場合:
options = {}
...
options['plist'] = { "LSArchitecturePriority": [ "i386" ] }
...
setup(options={'py2app':options})
これにより、LSArchitecturePriority キーの 1 つの文字列値の配列が作成されます。
Pythonを強制的に32ビットモードで実行する必要があります。