ここでwxPython2.7dmgに含まれているC拡張モジュールは32ビットのみのようです。
$ 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
...
残念ながら、platform.architecture()
Pythonが実行されているOS Xマルチアーキテクチャのアーチを正確に示すことはできません。たとえば、Python2.7用の3-archpython.orgインストーラーを使用するとplatform.architecture()
、32ビットモードで実行している場合でも常に64ビットが報告されます。 :
$ 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
信頼できる方法は、Python2sys.maxint
またはPython3を調べることですsys.maxsize
。
あなたはあなたの質問でPythonをどのように呼び出すかを示していません。スクリプトファイルのシバン行を介したものですか?もしそうなら、あなたはあなたが思っているPythonを実行していないかもしれません。また、インストールしたPython2.7を指定する必要はありません。たとえば、現在python.orgからPython 2.7のインストーラーが2つあります。1つは32ビットと64ビットの両方の実行をサポートし、もう1つは32ビットのみをサポートします。次のことを試してください。
$ 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
つまり、Pythonのマルチアーチバージョンを使用している場合は、コンパイル済みのwxPythonを利用するために、Pythonを32ビットモードで強制的に実行する必要があります。