【发布时间】:2011-12-01 01:03:39
【问题描述】:
我正在尝试在 OS X 上构建一个带有二进制模块的 Python 应用程序。我想为来自 Lion 的 Snow Leopard 和 Leopard 构建版本。我已经使用 10.5 和 10.6 sdks 安装了 XCode 4,并且一直在尝试使用设置为 10.6 的 MACOSX_DEPLOYMENT_TARGET 标志进行构建。我从 distutils 收到一条错误消息,抱怨 python 是使用不同的部署目标构建的。
我尝试构建一个单独的 python 二进制文件,并将部署目标设置为 10.6,然后使用 virtualenv 尝试从中构建,但 virtualenv 期望基础 env 目录下的 lib 目录不存在。
我是一个在 Mac 上开发的新手,甚至不确定我想做的事情是否可行。我是否将不得不崩溃并让仍在运行 Snow Leopard 的人构建我的发行版?
非常感谢任何帮助。
【问题讨论】:
-
你用什么来构建你的二进制包?我的猜测是,只要您的 python interp 是使用 i386 和 x86_64 构建的,并且您可能设置了 MACOSX_DEPLOYMENT_TARGET=10.5,那么二进制文件应该仍然可以在它们之间运行?
-
感谢您的回复。如果我输入“MACOSX_DEPLOYMENT_TARGET=10.6 python setup.py build”,我会收到错误 distutils.errors.DistutilsPlatformError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.6" but "10.7" during configure.
-
我假设在配置期间是指python安装的原始配置。
-
您可能需要从源代码构建另一个 python,而不是使用 Lion 附带的 2.7 interp。您可以使用 i386 和 x86_64 将其构建为 FAT 并使用 MACOSX_DEPLOYMENT_TARGET=10.5。这是 virtualdev 可以帮助你的地方,因为你可以切换到它,构建一个 python 并将它用于你的构建环境,而不是弄乱你的主要 python 2.7 interp
-
是的,10.7 是指 Python 的构建时间,它与 Lion 一起提供。
标签: python macos build cross-compiling distutils