sst*_*erX 6 python macos 64-bit x86-64 osx-snow-leopard
我只是想在我的开发机器上构建它 - 来自Python.org的二进制安装仍然是32位,安装扩展(例如MySQLdb)让我疯狂,试图找出每个扩展的正确标志.
澄清:我没有替换系统Python,我只是将Python.org二进制文件安装到/ Library/...的正常位置,而不是/ System/Library/....
默认情况下,其他所有内容似乎都构建了64位,默认的Python 2.6.1是64位(在我用Python.org构建代替它之前,它是直接替代它)
我只想要一个64位的版本,它将在我的一台机器上运行,没有任何瑕疵.
有没有人有一个简单的答案?
非常感谢,ssteinerX @ gmail.com
jat*_*ism 11
如果您碰巧使用的是MacPorts,那就像指定变量一样简单,告诉它不要编译Universal,如下所示:
sudo port install python26 -universal
Run Code Online (Sandbox Code Playgroud)
您可以使用以下variants命令查看可用的变体:
% port variants python26
python26 has the variants:
darwin: Platform variant, selected automatically
no_tkinter: Disable Tkinter support, which will break IDLE
ucs4: Enable support for UCS4
universal: Build for multiple architectures
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,默认情况下在10.6上构建darwin变体,它仅构建x86_64:
% cd /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/
% file python2.6
python2.6: Mach-O 64-bit executable x86_64
Run Code Online (Sandbox Code Playgroud)
比较默认的python二进制文件,即Universal:
% 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
Run Code Online (Sandbox Code Playgroud)
如果您不使用MacPorts,我建议您考虑一下.它节省了大量的时间和心痛,不得不手动配置和编译所有东西,并且有一个很棒的GUI界面叫做Porticus.当然,所有免费和开源!
ps 切勿替换或重命名原始系统二进制文件!正如Ned Daily的评论中所建议的那样:
"通过更改PATH环境变量中的搜索顺序来管理对预期python实例的访问,或者,如果需要,使用像/opt/local/bin/python2.6这样的绝对路径".
最简单的解决方案是从MacPorts中提取您需要的所有内容:
$ sudo port selfupdate
$ sudo port install python26 +no_tkinter -universal py26-mysqldb -universal
Run Code Online (Sandbox Code Playgroud)
这将安装python2.6,MySQLdb适配器和必要的MySQL客户端库.我建议添加no_tkinter变体,除非你真的需要tkinter; 10.6的MacPorts版Tk存在一些问题.
编辑:注意,MacPorts Python将安装为/opt/local/bin/python2.6.您可能需要调整shell $ PATH以确保在/ usr/local/bin和/ usr/bin之前使用/ opt/local/bin.如果你想/ opt/local/bin/python引用MacPorts python2.6,请执行以上操作:
$ sudo port install python_select
$ sudo python_select python26
Run Code Online (Sandbox Code Playgroud)
总是macports ... sheesh
这就是我做的:
~: wget http://python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
~: tar xjf Python-2.6.5.tar.bz2
~: cd Python-2.6.5
~: ./configure ./configure MACOSX_DEPLOYMENT_TARGET=10.6 --enable-framework --with-universal-archs="64-bit" CFLAGS="-arch x86_64" LDFLAGS="-arch x86_64"
~: make -j6
~: sudo make install
Run Code Online (Sandbox Code Playgroud)
在FLAGS上可能有点多余,但它确实有效.