1

最近、python 2.7.3 (2.6 から) をインストールし、誤って wxPython 2.8 Unicode を Mac に再インストールしました。今、wxをインポートしようとすると、

>>> import wx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/__init__.py", line 45, in <module>
    from wx._core import *
  File "/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core.py", line 4, in <module>
    import _core_
ImportError: dlopen(/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core_.so, 2): no suitable image found.  Did find:
/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core_.so: no matching architecture in universal wrapper

どうしてこれなの?私はやったしdefaults write com.apple.versioner.python Prefer-32-Bit -bool yesprint("%x" % sys.maxsize, sys.maxsize > 2**32)まだ戻ってきます('7fffffffffffffff', True)。これは 64 ビット モードで実行されているということですか? もしそうなら、それがこのエラーが発生する理由ですか?

編集: これは、python2.6 で wx をインポートするときにも発生します。しかし、同じバージョンの wxPython を使用しているため、何も変更されていないはずです。

別の編集: を使用しarchて、64 ビット モードで実行されているため、これが発生していると判断しました。ただし、それにもかかわらず、64ビットPrefer-32-Bit -bool yesです。これはなぜでしょうか?/usr/bin/python がまだ 2.6 を実行していることに気付きました。

4

2 に答える 2

1

それは間違いなくアーキテクチャの不一致です。Python を 32 ビットで実行する代わりに、wx をコンパイルする前に、この環境変数を設定してみてください。

export ARCHFLAGS='-arch x86_64'
于 2012-11-02T17:02:40.067 に答える