Wygląda na to, że moduły rozszerzeń C dołączone do wxPython 2.7 dmg here są tylko 32-bitowe.
$ cd /usr/local/lib/wxPython-unicode-2.8.11.0/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx
$ file *.so
_animate.so: Mach-O universal binary with 2 architectures
_animate.so (for architecture ppc): Mach-O bundle ppc
_animate.so (for architecture i386): Mach-O bundle i386
_aui.so: Mach-O universal binary with 2 architectures
_aui.so (for architecture ppc): Mach-O bundle ppc
_aui.so (for architecture i386): Mach-O bundle i386
...
Niestety platform.architecture()
nie daje dokładne wskazanie, którego łuk OS X wielokrotnego architekturę Python jest uruchomiony. Na przykład, przy użyciu 3-arch Python.org instalator dla Pythona 2.7, platform.architecture()
zawsze informuje 64- nieco nawet podczas pracy w trybie 32-bitowym:
$ cd /Library/Frameworks/Python.framework/Versions/2.7
$ file python2.7
python2.7: Mach-O universal binary with 3 architectures
python2.7 (for architecture i386): Mach-O executable i386
python2.7 (for architecture ppc7400): Mach-O executable ppc
python2.7 (for architecture x86_64): Mach-O 64-bit executable x86_64
$ arch -x86_64 ./python2.7 -c 'import platform, sys; print "{0}, {1:x}".format(platform.architecture()[0], sys.maxint)'
64bit, 7fffffffffffffff
$ arch -i386 ./python2.7 -c 'import platform, sys; print "{0}, {1:x}".format(platform.architecture()[0], sys.maxint)'
64bit, 7fffffff
$ arch -ppc ./python2.7 -c 'import platform, sys; print "{0}, {1:x}".format(platform.architecture()[0], sys.maxint)'
64bit, 7fffffff
niezawodny sposób jest zbadanie sys.maxint
dla Pythona 2 lub sys.maxsize
dla Pythona 3.
nie wskazują na twoje pytanie, w jaki sposób powołujesz się na Python. Czy to za pośrednictwem linii shebang w pliku skryptowym? Jeśli tak, możesz nie uruchamiać Pythona, o którym myślisz, że jesteś. Ponadto nie wskazujesz, który Python 2.7 zainstalowałeś. Na przykład obecnie istnieją dwa instalatory dla Pythona 2.7 z python.org: jeden obsługuje zarówno 32-, jak i 64-bitowe wykonanie, drugi to tylko 32-bit. Spróbuj wykonać następujące czynności:
$ file $(python2.7 -c 'import sys;print(sys.executable)')
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: Mach-O universal binary with 3 architectures
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python (for architecture i386): Mach-O executable i386
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python (for architecture ppc7400): Mach-O executable ppc
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python (for architecture x86_64): Mach-O 64-bit executable x86_64
więc: jeśli masz wersję multi-arch Pythona, trzeba zmusić go do pracy w trybie 32-bitowym, aby skorzystać z pre-kompilowane wxPython.
Wydaje się, że istnieje bardziej aktualne rozwiązanie tego problemu [tutaj] (http://stackoverflow.com/questions/9205317/how-do-i-install-wxpython-on-mac-os- x). – senderle