如何在macosx10.6上编译macosx10.5的python扩展?

2024-09-30 08:20:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在macosx10.6上编译各种python扩展(pycrypto、paramiko、submotpy…),这样它们将与macosx10.5及其内置的python2.5兼容,以便包含在以macosx10.5为目标的产品安装程序中。在

我真的不知道该怎么办。我在Google上找到了a question here on stackoverflow,这导致我在构建之前在我的环境中设置MACOSX_DEPLOYMENT_TARGET=10.5,但这给了我一个错误:

distutils.errors.DistutilsPlatformError: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.5" but "10.6" during configure

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

$ python2.5 setup.py install

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


Tags: paramikotarget目标here环境产品ongoogle
1条回答
网友
1楼 · 发布于 2024-09-30 08:20:13

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

# 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

然后,pycrypto在将MACOSX_部署_目标设置为“10.5”之后,使用python2.5在雪豹上构建得很好。我不能保证它能很好地工作,但是pycrypto的捆绑测试套件在我的Macbook Air running Leopard上通过了这个构建,所以看起来还可以。在

相关问题 更多 >

    热门问题