Сборка mod_wsgi с использованием Python 2.5 на Snow Leopard - PullRequest
3 голосов
/ 21 августа 2010

Я использую Python 2.5, поставляемый с Mac OS X Snow Leopard (10.6). Я установил значение по умолчанию: defaults write com.apple.versioner.python Version 2.5, и обычно я получаю Python 2.5, как он предлагает.

Однако, когда я пытаюсь собрать mod_wsgi, это, похоже, не соответствует. Я использовал параметр --with-python=/usr/bin/python2.5 для configure, чтобы заставить его использовать python 2.5, но созданная разделяемая библиотека заканчивается ссылками на библиотеки python 2.6.

Я также пробовал:

  • установка $VERSIONER_PYTHON_VERSION до 2,5 перед сборкой
  • отъезд --with-python

Я прочитал обсуждение аналогичного вопроса SO . В отличие от этого человека, я использую стандартный Mac OS X python, который должен работать с кодом Frameworks в процессе сборки mod_wsgi.


Вот вывод некоторых соответствующих команд. Обратите внимание на окончательный вывод otool -L в конце, который показывает, что он ищет в директории фреймворка Python 2.6.

$ make distclean
rm -rf .libs
rm -f mod_wsgi.o mod_wsgi.la mod_wsgi.lo mod_wsgi.slo mod_wsgi.loT
rm -f config.log config.status
rm -rf autom4te.cache
rm -f Makefile Makefile.in

$ ./configure --with-python=/usr/bin/python2.5
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking Apache version... 2.2.14
configure: creating ./config.status
config.status: creating Makefile

$ make

  (compilation messages, no errors)

$ otool -L .libs/mod_wsgi.so
.libs/mod_wsgi.so:
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
    /System/Library/Frameworks/Python.framework/Versions/2.6/Python (compatibility version 2.6.0, current version 2.6.1)

1 Ответ

2 голосов
/ 21 августа 2010

Попробуйте использовать '--disable-framework' для 'configure'. Это приведет к тому, что -L / -l будет использоваться для связи библиотеки Python, а не для фреймворка. Это необходимо, так как не знаю, как заставить ссылку каркаса использовать версию, отличную от той, которая обозначена как «Текущая».

...