为多个OS X版本构建二进制python发行版

为多个OS X版本构建二进制python发行版,python,macos,build,cross-compiling,distutils,Python,Macos,Build,Cross Compiling,Distutils,我正在尝试在OS X上构建一个带有二进制模块的python应用程序。我想为来自Lion的Snow Leopard和Leopard构建版本。我已经在10.5和10.6 SDK中安装了XCode 4,并且一直在尝试使用设置为10.6的MACOSX_部署_目标标志进行构建。我收到一个来自distutils的错误,抱怨python是用不同的部署目标构建的 我尝试构建一个单独的python二进制文件,将部署目标设置为10.6,然后使用virtualenv尝试从中构建,但virtualenv希望在基本env

我正在尝试在OS X上构建一个带有二进制模块的python应用程序。我想为来自Lion的Snow Leopard和Leopard构建版本。我已经在10.5和10.6 SDK中安装了XCode 4,并且一直在尝试使用设置为10.6的MACOSX_部署_目标标志进行构建。我收到一个来自distutils的错误,抱怨python是用不同的部署目标构建的

我尝试构建一个单独的python二进制文件,将部署目标设置为10.6,然后使用virtualenv尝试从中构建,但virtualenv希望在基本env目录下有一个lib目录,而该目录不存在

我是一个在Mac上开发的新手,甚至不确定我想做的事情是否可行。我是否要崩溃,让一个仍然在运行雪豹的人来构建我的发行版


非常感谢您的帮助。

苹果在OS X 10.7中提供的系统python仅适用于10.7。最简单的解决方案是下载最新版本并使用它,因为它是一个通用二进制文件,将在10.6或10.7上运行。如果你正在制作一个应用程序包,你需要为它安装一份
py2app
,以及任何其他第三方软件包,如
Distribute
(又名
easy\u install
)或
pip
我找到了解决方案,进入你的/System/Library/Frameworks/Python.framework/Versions/2.7/lib/distutils/sysconfig.py

转到显示“raise DISTUTILSPLATFORMER”的第408行,并添加“#”以注释掉该行代码。。。这将“释放python”


你基本上是在告诉python“别担心,它不是10.7,我知道”结果可能会有一些崩溃,但我不这么认为。我的非常复杂的python应用程序现在可以在MacOSX 10.8上编译,没有任何问题,而且似乎可以完成这项工作,但QA仍需要对其进行测试。

您使用什么来构建二进制软件包?我的猜测是,只要您的python interp是用i386和x86_64构建的,并且您可能将MACOSX_部署_目标设置为10.5,那么二进制文件应该仍然可以在所有这些程序中工作?感谢您的响应。如果我输入“MACOSX_部署_目标=10.6 python setup.py build”,我会得到错误distutils.errors.DistutilsPlatformError:$MACOSX_部署_目标不匹配:现在为“10.6”,但为“10.7”在配置期间。我假设在配置期间引用python安装的原始配置。您可能需要从源代码构建另一个python,而不是使用Lion附带的2.7 interp。您可以使用i386和x86_64构建FAT,并使用MACOSX_部署_目标=10.5。这是virtualdev可能帮助您的地方,因为您可以切换到它,构建一个python,并将其用于您的构建环境,而不是与您的主要python 2.7 interpYa,10.7指的是构建python的时间,这是Lion附带的。黑客系统python源代码确实不值得推荐。您是对的,如果有别的解决办法,我会先去做