您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

wxPython中的“通用包装中没有匹配的体系结构”问题?

wxPython中的“通用包装中没有匹配的体系结构”问题?

看来,附带的wxPython 2.7 DMG 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多种体系结构。例如,对于Python 2.7使用3-arch python.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

可靠的方法是检查sys.maxintPython 2或sys.maxsizePython 3。

您没有在问题中指出如何调用Python。是通过脚本文件中的shebang行吗?如果是这样,您可能没有运行您认为是的Python。另外,您不会指出已安装的Python 2.7。例如,当前有两个来自python.org的Python 2.7安装程序:一个安装程序同时支持32位和64位执行,另一个支持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的多体系结构版本,则需要强制其以32位模式运行,以利用预编译的wxPython。

python 2022/1/1 18:35:44 有292人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶