Macintosh Python:64位与32位问题
我正在处理因为把我的Mac升级到10.6而出现的一堆问题。大部分我需要的工具都能正常工作,但有几个(比如scipy和wxpython)不行,并且给出的错误信息让我觉得可能是我搞混了64位和32位的程序。
我现在用的是Python 2.7。我不知道它是32位的还是64位的,怎么才能知道呢?
我最担心的是我可能有一些奇怪的32位和64位混合在一起,可能需要把所有东西都删掉重新安装。如果我这样做,想尽量避免出现构建问题,我应该选择(1)安装32位版本,(2)安装64位版本并确保我构建的所有东西都是64位的,还是(3)其他的选择。
我试着找一些相关的网页,但没有找到,因为其他人肯定也遇到过这些问题。如果我在重复老问题,我很抱歉。我也努力不想说出“我不在乎32位和64位,我只想让Python能用”这样的话,但实际上,这就是我想问的。
非常感谢能帮我理清这些问题的人,如果我显得很笨,真是抱歉。
2 个回答
1
我也在升级的时候遇到了很多问题,所以你并不是一个人,只是你来得稍晚了一点。
要弄清楚你手上的文件是什么类型,可以用 file
这个命令,它会帮你识别。
$ file /usr/local/bin/python
/usr/local/bin/python: Mach-O universal binary with 2 architectures
/usr/local/bin/python (for architecture i386): Mach-O executable i386
/usr/local/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
你可能还会被建议使用 MacPorts,或者更好的选择是 HomeBrew。
如果你已经在用 MacPorts,但现在什么都不管用了,可能需要考虑卸载它,然后重新用 Homebrew 开始。这样可以让你更快地解决问题,之后你只需要弄清楚如何把那个重要的特殊库编译成合适的格式就行了。
1
对于wxPython,你可以在脚本的第一行使用这个“shebang”:
#!/usr/bin/arch -arch i386 python2.7
或者你也可以通过命令行运行,使用:
arch -arch i386 python2.7 yourScript.py
简单来说,你的Python程序应该同时包含32位和64位的版本,而'arch'命令就是告诉系统要用哪个版本来运行。