如何在Mac OS X 10.6上为Mac OS X 10.5编译Python扩展?

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 mismatch: now "10.5" but "10.6" during configure 我正在使用python2.5在Mac OS X 10.6上运行构建,例如: $ python2.5 setup.py install
我也看到了/Developer/SDKs/MacOSX10.5.sdk的参考资料,但我真的不知道如何利用它。

你也在Snow Leopard上使用Python 2.5吗?我认为捆绑的版本是2.6,我很确定你无法使用2.6构建适用于2.5的扩展程序... - fraca7
我使用Python2.5可执行文件来运行构建。 - dOxxx
1个回答

2

我成功让distutils相信Python是在Leopard上构建的,方法是在setup.py中调用setup()之前插入以下代码:

# 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

然后,在Snow Leopard上,使用python2.5设置MACOSX_DEPLOYMENT_TARGET为“10.5”,pycrypto能够顺利构建。我不能保证它能很好地运行,但在我的Leopard上运行的Macbook Air上,pycrypto的捆绑测试套件通过了此构建,所以看起来还可以。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接