python プログラムを py2app 0.7.3 でアプリにパッケージ化しようとしています。私は 1 台の (Mountain Lion) Mac に、Python 2.7.3 の python.org バージョンと必要なすべてのモジュールを、それらに利用可能な配布可能ファイルを使用してインストールしました。ただし、アプリの 32 ビット バージョンも必要だったので、別の (Mountain Lion) マシンで、macports (build_arch に i386 を使用) を使用して同じ環境 (つまり、python + モジュール) をセットアップしました。
ソースから、私のプログラムは両方のマシンで正常に動作します。ただし、64 ビット マシンで生成されたアプリのみが機能します。macports マシンで生成された 32 ビット アプリを実行しようとすると、次のエラーが表示されます。
Traceback (most recent call last):
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/py2app/apptemplate/lib/site.py", line 20, in <module>
import os
zipimport.ZipImportError: can't decompress data; zlib not available
両方のアプリで、同じ setup.py ファイルが使用されました。
macports マシンで生成されたアプリは、パッケージ化されているものではなく、外部の Python を使用しようとしているように見えます (ただし、システムの Python が使用されていないため、セミスタンドアロンであってはなりません)。zlib は .app ファイルに存在します (もちろん、外部にもあります)。
この問題について私が見つけた他のほとんどの投稿では、パッケージ内にある __boot__.py ファイルの sys.path 変数を変更することを推奨していますが、アプリがそのモジュールに到達しておらず、事前にクラッシュしているようです。