4

我正在尝试在 Mac OS X 10.6 上编译各种 python 扩展(pycrypto、paramiko、subvertpy...),以便它们与 Mac OS X 10.5 及其内置的 python 2.5 兼容,包括在针对 Mac OS X 10.5 的产品安装程序。

我真的不知道该怎么做。我在 Google 上搜索并在 stackoverflow 上发现了一个问题,这导致我在构建之前在我的环境中设置 MACOSX_DEPLOYMENT_TARGET=10.5 ,但这只是给了我错误:

distutils.errors.DistutilsPlatformError:$MACOSX_DEPLOYMENT_TARGET 不匹配:配置期间现在为“10.5”但为“10.6”

我在 Mac OS X 10.6 上使用 python2.5 来运行构建,例如:

$ python2.5 setup.py 安装

我还遇到了对 /Developer/SDKs/MacOSX10.5.sdk 的引用,但我不确定如何使用它。

4

1 回答 1

2

通过在 setup.py 中调用 setup() 之前插入以下代码,我设法让 distutils 相信 Python 是基于 Leopard 构建的:

# XXXHACK: make distutils believe that Python was built on Leopard.
from distutils import sysconfig
their_parse_makefile = sysconfig.parse_makefile
def my_parse_makefile(filename, g):
    their_parse_makefile(filename, g)
    g['MACOSX_DEPLOYMENT_TARGET'] = '10.5'
sysconfig.parse_makefile = my_parse_makefile

然后在将 MACOSX_DEPLOYMENT_TARGET 设置为“10.5”之后,pycrypto 使用 python2.5 在 Snow Leopard 上构建良好。我不能保证它会很好地工作,但是 pycrypto 的捆绑测试套件在我运行 Leopard 的 Macbook Air 上通过了这个构建,所以看起来没问题。

于 2010-05-21T16:35:23.167 回答