我今天花了一些时间使用 --enable-framework 和 --enable-universalsdk 选项获取 python 3.1.1 的源代码以在我的 MacBook Pro 上构建,但没有成功。我会谦虚地承认,我不知道为什么我不能在 Snow Leopard 上编译 3.1.1,我确实确保获得了 Snow Leopard 的新 Xcode 版本,并确保我还安装了 10.4u SDK。在 make 阶段它似乎在 10.4 SDK 上阻塞,并且在配置阶段有几个关于 wchar、cursor 和 ncursor 标头的错误。我已经能够从简单的配置中获得成功,并且大多数测试都通过了,但这还不够具有挑战性。有没有其他人尝试在运行 Snow Leopard 的 Mac 上构建 python 3.1.1
4 回答
这里有一个自动安装程序:http: //python.org/ftp/python/3.1.1/python-3.1.1.dmg
如果您确实想使用较旧的 SDK,则需要设置 MACOSX_DEPLOYMENT_TARGET。
根据此错误报告,如果您的目标是 10.6,则可能不再支持 PPC 构建。事实上,即使您使用 XCode 3.2(自己没有尝试过)的目标是 10.4,也可能是这种情况。
我还没有安装 10.6,所以我不能肯定它会毫无问题地工作,但一般来说,如果你想在 OS X 上构建一个针对 Python 10.6 优化的包含电池的框架构建,你是最好的Mac/BuildScript/build-installer.py
在应用了Martin 提到的错误报告中的补丁后,请关闭在源代码树中使用安装程序构建脚本。像这样的东西应该有效[未经测试]:
./build-installer.py --sdk-path=/Developer/SDKs/MacOSX10.6.sdk --universal-archs=intel --dep-target=10.6 --src-dir=... --build-dir=...
这将构建所有内容,包括相关的第三方库和文档,但请注意,您可能需要调整一些东西,直到你做对了,并且一些东西在 64 位中尚不支持,最值得注意的是 tkinter。如上所述,只要您不需要 64 位支持,标准的 python.org 3.1.1 安装程序应该可以正常工作。
[编辑:我应该澄清一下,WRT 64 位支持,问题不在于 tkinter,而是 Apple 提供的 10.5 及更早版本的 Tk 仅为 32 位,因此 setup.py 中有代码防止尝试在 OSX 上构建 64 位版本的 tkinter。如果 10.6 Tk 是 64 位的,也许现在可以删除该检查。]
Kenneth Reitz 的解决方案对我不起作用。事实上,安装工作正常,但我的默认值PATH
仍然指向/usr/bin/python
(v2.6.1.)。我隐约记得我们应该修改我们~/.profile
的指向/.../Frameworks
,我希望安装程序为我做这件事(不)。
无论如何,/Library/Frameworks/Python.framework/Versions/3.1/bin
存在,所以我们可以添加它。但我很好奇为什么那里的蟒蛇箱会崩溃并烧伤我。
现在没时间解决这个问题。再见。