使用 --arch x86_64 选项编译 sip 时出现以下错误。
prosseek:siplib smcho$ python -c 'import sip; print sip'
Traceback (most recent call last):
File "", line 1, in
ImportError: dlopen(./sip.so, 2): no suitable image found. Did find:
./sip.so: mach-o, but wrong architecture
我发现预构建的 Mac OS X python (snow leopard) 是通用的,并且它没有获得 64 位库。我猜它在 32 位模式下运行。
file /usr/bin/python
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386): Mach-O executable i386
/usr/bin/python (for architecture ppc7400): Mach-O executable ppc
prosseek:siplib smcho$ file sip.so
sip.so: Mach-O 64-bit bundle x86_64
如何强制 python 在 64 位模式下运行?当我在 Textmate 上运行相同的代码时,没有问题。所以,我认为 Textmate 无论如何都应该在 64 位模式下运行。
Added
-
这个链接展示如何识别我正在运行的 python 是 32 位还是 64 位。我检查了我的 python 是 32 位的。
-
这个链接展示如何制作 32/64 位 python。但这对我不起作用。
尝试使用arch(1),并提供特定的 Python 版本:
arch -x86_64 /usr/bin/python2.6
实际上系统应该选择第一个适合你的架构。作为
$ file /usr/bin/python2.5
/usr/bin/python2.5: Mach-O universal binary with 2 architectures
/usr/bin/python2.5 (for architecture i386): Mach-O executable i386
/usr/bin/python2.5 (for architecture ppc7400): Mach-O executable ppc
$ file /usr/bin/python2.6
/usr/bin/python2.6: Mach-O universal binary with 3 architectures
/usr/bin/python2.6 (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python2.6 (for architecture i386): Mach-O executable i386
/usr/bin/python2.6 (for architecture ppc7400): Mach-O executable ppc
If that python
以某种方式选择 2.5,那么您不能使用 64 位,但如果选择 2.6,则应自动选择 x86_64 变体,如下所述。如果是前者,请尝试获取python_select
并将版本更改为2.6。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)