Es scheint, dass C-Erweiterungsmodule, die mit dem wxPython 2.7 dmg here enthalten sind, nur 32-Bit sind.
$ 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
...
Leider hat platform.architecture()
keine genaue Angabe, welche geben Bogen ein OS X mehrere Architektur Python in ausgeführt wird. Zum Beispiel mit dem 3-Bogen python.org Installer für Python 2.7, platform.architecture()
immer berichtet 64- Bit, auch wenn im 32-Bit-Modus:
$ 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
Die zuverlässige Art und Weise sys.maxint
für Python 2 oder sys.maxsize
für Python 3.
Sie zeigen nicht zu untersuchen ist in Ihre Frage, wie Sie Python aufrufen. Ist es über eine Shebang-Zeile in einer Skriptdatei? Wenn das der Fall ist, darfst du nicht den Python laufen lassen, von dem du denkst, dass du es bist. Außerdem geben Sie nicht an, welches Python 2.7 Sie installiert haben. Zum Beispiel gibt es derzeit zwei Installer für Python 2.7 von python.org: Einer unterstützt sowohl 32- als auch 64-Bit-Ausführung, der andere ist nur 32-Bit. Versuchen Sie Folgendes:
$ 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
Also: Wenn Sie ein Multi-Arch-Version von Python haben, werden Sie es zwingen, müssen in 32-Bit-Modus zu laufen Verwendung der vorkompilierte WxPython zu machen.
Es scheint dieses Problem [hier] eine mehr up-to-date Lösung zu sein (http://stackoverflow.com/questions/9205317/how-do-i-install-wxpython-on-mac-os- x). – senderle