2010-05-20 3 views
3

Я пытаюсь скомпилировать множество расширений python (pycrypto, paramiko, subvertpy ...) в Mac OS X 10.6, чтобы они были совместимы с Mac OS X 10.5 и встроенным python 2.5 для включения в установщике продукта, настроенном на Mac OS X 10.5.Как скомпилировать расширения python для Mac OS X 10.5 на Mac OS X 10.6?

Я действительно не уверен, как это сделать. Я порылся на 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

Я использую python2.5 на Mac OS X 10.6 запускать сборки, например:

$ python2.5 setup.py install

я наткнулся на ссылки на /Developer/SDKs/MacOSX10.5.sdk, но я действительно не знаю, как использовать его.

+0

Вы также используете Python 2.5 на Snow Leopard? Я думаю, что в комплекте один - 2.6, и я уверен, что вы не сможете построить расширение, работающее на 2,5 с 2.6 ... – fraca7

+0

Я использовал исполняемый файл python2.5 для запуска сборки. – dOxxx

ответ

1

мне удалось получить Distutils верить, что Python был построен на Leopard, вставив следующий код перед вызовом установки() в setup.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 строит хорошо на Snow Leopard, используя python2.5, после установки MACOSX_DEPLOYMENT_TARGET на «10.5». Я не могу гарантировать, что он будет работать хорошо, но комплект комплекта тестов pycrypto, полученный в комплекте с этой сборкой на моем Macbook Air, работает с Leopard, так что кажется, что все в порядке.

Смежные вопросы