1

私は現在、py2appを使用してcherrypyとdjangoを埋め込む小さなPythonアプリを書いています。私のアプリには小さなGUI(トップメニューバーの小さなアイコンとドロップダウンメニューで構成されています)が必要だったため、プロジェクトにpyobjcを含めようとするまではうまく機能しました。

pythonスクリプトは問題なく実行できますが(macportsでpython 2.6を使用しています)、py2appによって生成されたアプリケーションバンドルを起動できません。次のメッセージを含むダイアログボックスが表示されます。

ImportError:
dlopen(/Users/denis/tlon/standalone/mac/dist/django_cherry.app/Contents/Resources/lib/python2.6/lib-dynload/CoreFoundation/_inlines.so, 2): no suitable image found.
Did find:
    /Users/denis/tlon/standalone/mac/dist/django_cherry.app/Contents/Resources/lib/python2.6/lib-dynload/CoreFoundation/_inlines.so: mach-o, but wrong architecture

私は簡単にやった:

sudo port -u install py26-pyobjc +universal

しかし、何らかの理由でmacportsはopensslをビルドしようとしますが、これを使用すると毎回コンパイルが失敗します。問題はzLibに関連しているようです-これはログに表示されるものです:

:info:build ld: warning: in /opt/local/lib/libz.dylib, file is not of required architecture

...そしてここに:の出力がありfile /opt/local/lib/libz.dylibます


    /opt/local/lib/libz.dylib: Mach-O universal binary with 2 architectures
    /opt/local/lib/libz.dylib (for architecture x86_64):    Mach-O 64-bit dynamically linked shared library x86_64
    /opt/local/lib/libz.dylib (for architecture i386):  Mach-O dynamically linked shared library i386

私には何も悪いことはありません。

私はここで少し立ち往生しています。opensslがpyObjcと何の関係があるのか​​さえわかりませんが、コンパイルできなければどこにも行けないようです。Macportsは本当に時々吸う:/

編集私はMacportsの問題を修正することができましたが、py2appの問題は修正しませんでした:/

4

1 に答える 1

0

必要なライブラリがライブラリパスにないためだと思います。ローダーはそれがどこにあるかわからないため、シンボルをリンクできます。次の2つのいずれかを実行する必要があります。

  1. アプリの起動時に環境変数に追加/opt/local/libします。$LD_LIBRARY_PATHまた
  2. 適切なライブラリをファイルにバンドルし.appます。
于 2010-06-21T12:59:50.607 に答える