2009-08-29 11 views
6

私は現在PyObjCアプリケーションをSnow Leopardで動作させており、スタンドアロンのアプリケーションを正常にコンパイルしました。私の質問は、これらのエラーを考慮して、ビルドをLeopard互換にするにはどうすればよいですか?LeopardとSnow Leopardのpy2app作業ビルドをコンパイルしますか?

dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003 
    Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp 
    Expected in: /usr/lib/libSystem.B.dylib 

dyld: Symbol not found: _fopen$UNIX2003 
    Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp 
    Expected in: /usr/lib/libSystem.B.dylib 

これはSnow Leopardでコンパイルされたpy2appアプリケーションです。また、私はLeopardでコンパイルすると、このエラーが発生します:

Traceback (most recent call last): 
    File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/__boot__.py", line 31, in <module> 
    _run('main.py') 
    File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/__boot__.py", line 28, in _run 
    execfile(path, globals(), globals()) 
    File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/main.py", line 17, in <module> 
    from AppKit import * 
    File "AppKit/__init__.pyc", line 10, in <module> 
    File "Foundation/__init__.pyc", line 10, in <module> 
    File "CoreFoundation/__init__.pyc", line 17, in <module> 
    File "objc/_bridgesupport.pyc", line 129, in initFrameworkWrapper 
    File "objc/_bridgesupport.pyc", line 53, in _parseBridgeSupport 
ValueError: Unknown typestr 
2009-08-29 19:30:14.530 MyApp[445:903] MyApp Error 
2009-08-29 19:30:14.534 MyApp[445:903] MyApp Error 
An unexpected error has occurred during execution of the main script 

助けていただければ幸いです。前もって感謝します。

答えて

0

両方とも個別のアーキテクチャ(それぞれ32ビットと64ビット)上にあるので、2つの異なるコンパイルを作成する必要があると思います。

3

私は最近、これをやったとトリックがヒョウインストールにスタンドアロンバージョンを構築することでした。

デフォルトでは、Pythonのオープンソース版がインストールされていない限り、py2appはOSファイルへのシンボリックリンクを持つセミスタンドアロンアプリケーションを作成します。

代わりに、アプリケーションのスタンドアロン版を作成した場合、インタープリタとサポートファイルはアプリケーション内に埋め込まれているため、アプリケーションを実行しているすべてのマシンで一貫しています。完全にスタンドアロンのアプリケーションを作成する手順はhereですが、ブログ記事が書き込まれた後に変更されたので、ブログのコメントに注意してください。

必要な特定のライブラリがある場合は、setup.pyファイルでそれらを参照するか、手動でdylibディレクトリに追加することができます(起動スクリプトを変更する必要があるため、再作成したい)、32ビットのlibs(Leopard上にある)を必ず使用してください。

関連する問題