我试图在macosx10.6上编译各种python扩展(pycrypto、paramiko、subversity…),以便它们与macosx10.5及其内置的python 2.5兼容,包括在macosx10.5的产品安装程序中。
我真的不知道该怎么办。我在Google上搜索,发现a question here on stackoverflow,这导致我在构建之前将MACOSX_DEPLOYMENT_TARGET=10.5设置在我的环境中,但这只是给了我一个错误:
distutils.errors.DistutilsPlatformError:$MACOSX_DEPLOYMENT_TARGET mismatch:在配置期间,现在是“10.5”,但“10.6”
我在Mac OS X 10.6上使用python2.5运行构建,例如:
$python2.5 setup.py安装
我还遇到了对/Developer/SDKs/MacOSX10.5.sdk的引用,但我不确定如何使用它。

最佳答案

通过在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_部署目标设置为“10.5”之后,pycrypto使用python2.5在雪豹上很好地构建。我不能保证它能很好地工作,但是pycrypto的捆绑测试套件通过了我的Macbook Air上运行Leopard的构建,所以看起来没问题。

关于python - 如何在Mac OS X 10.6上为Mac OS X 10.5编译python扩展?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2871013/

10-11 19:36