当我在Mac上运行bash shell时:
$ file /usr/bin/python
我得到以下三行:
/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
这似乎表明Python已经为所有三种架构或类似的东西编译过了?我相信,基于我在安装MySQL时的一些错误,我使用的版本是64位版本。所以有两个问题:
我怎么会知道呢?
如何将Python改为32位?有什么比用不同的编译设置重新编译更不激烈的事情吗?
为什么bash shell中的arch
返回i386
,这似乎表明我没有处于“64位模式”,而根据我的处理器,我运行的是64位Mac?
抱歉,这些可能都是新手的问题,整个32/64位的事情是令人沮丧的废物,我相信有一些命令/工具,将使这更容易。
在雪豹上与virtualenv一起使用的修复程序
当我不使用virtualenv时,danielrsmith的答案对我有效,但是virtualenv复制了python的可执行文件,导致它无法工作:
因为这是python的副本,所以我使用lipo删除了64位体系结构。这允许我在virtualenv中使用32位Python2.6:
http://www.jaharmi.com/2009/08/29/python_32_bit_execution_on_snow_leopard
$ defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
您可以通过
platform
模块(该sys
模块也有一些简单的帮助程序)了解正在运行的Python版本在MacOSX上,你可以用你选择的架构运行一个“胖二进制”,例如
架构-i386/usr/bin/python
我确实不建议(使用
lipo
命令)修改/usr/lib/python本身——通过篡改系统文件,可以很容易地使系统不可用。也许在Python.org中安装一个单独的Python(用于应用程序目的)而不使用系统Python是一个可以接受的策略——它绝对比修改系统文件更安全!-)至于你的第三个问题,嗯,这个问题对我来说是一个难解的问题——当然对于superuser.com来说也是一个问题(除了与Python完全无关之外,它似乎也与编程完全无关;-)。
相关问题 更多 >
编程相关推荐