mod_wsgi на несовпадении версии python на Snow Leopard

Я пытаюсь запустить mod_wsgi 3.1 в Apache 2.2.14, используя установку python без установки по умолчанию в Mac OS X 10.6.

После загрузки источника mod_wsgi я запускаю:

sudo apachectl -k stop 

тогда

 ./configure --with-python=/usr/local/Cellar/python/2.6.4/bin/python make sudo make install 

Я снова запускаю apache

 sudo apachectl -k start 

Когда я вижу cat / var / log / httpd / error_log, я вижу:

[Mon Dec 21 12:27:26 2009] [warn] mod_wsgi: Скомпилирован для Python / 2.6.4.

[Mon Dec 21 12:27:26 2009] [warn] mod_wsgi: Runtime с использованием Python / 2.6.1.

[Mon Dec 21 12:27:26 2009] [уведомление] Apache / 2.2.14 (Unix) DAV / 2 mod_wsgi / 3.1 Конфигурация Python / 2.6.1 – возобновление обычных операций

Когда я запускаю otool -L mod_wsgi.so, вы увидите:

mod_wsgi.so:

/System/Library/Frameworks/Python.framework/Versions/2.6/Python (версия совместимости 2.6.0, текущая версия 2.6.1)

/usr/lib/libSystem.B.dylib (версия совместимости 1.0.0, текущая версия 125.0.0)

Что дает? Почему это связано с системой?

Вот результат моих команд mod_wsgi configure и build:


Архимед: mod_wsgi-3.1 awolf $ ./configure –with-python = / usr / local / Cellar / python / 2.6.4 / bin / python

проверка на apxs2 … нет

проверка apxs … / opt / apache2 / bin / apxs

проверка версии Apache … 2.2.14

configure: создание ./config.status

config.status: создание Makefile

Архимед: mod_wsgi-3.1 awolf $ make

/ opt / apache2 / bin / apxs -c -I / usr / local / Cellar / python / 2.6.4 / include / python2.6 -DNDEBUG -Wc, '- arch x86_64' mod_wsgi.c -L / usr / local / Cellar / python / 2.6.4 / lib -L / usr / local / Cellar / python / 2.6.4 / lib / python2.6 / config -arch x86_64 -lpython2.6 -ldl / Library / Webserver / build / libtool – silent -mode = компиляция gcc -prefer-pic -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp -g -O2 -I / opt / apache2 / include -I / opt / apache2 / include -I / opt / apache2 / include – arch x86_64 -I / usr / local / Cellar / python / 2.6.4 / include / python2.6 -DNDEBUG -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo

В файле, включенном в /usr/local/Cellar/python/2.6.4/include/python2.6/Python.h:125,

  from mod_wsgi.c:135: 

/usr/local/Cellar/python/2.6.4/include/python2.6/modsupport.h:27: warning: «PyArg_ParseTuple» – это непризнанный тип функции формата / Library / Webserver / build / libtool –silent –mode = link gcc -o mod_wsgi.la -rpath / opt / apache2 / modules -module -avoid-version mod_wsgi.lo -L / usr / local / Cellar / python / 2.6.4 / lib -L / usr / local / Подвал / python / 2.6.4 / lib / python2.6 / config -arch x86_64 -lpython2.6 -ldl

Архимед: mod_wsgi-3.1 awolf $ sudo make install

Пароль:

/ opt / apache2 / bin / apxs -i -S LIBEXECDIR = / opt / apache2 / modules -n 'mod_wsgi' mod_wsgi.la

/Library/Webserver/build/instdso.sh SH_LIBTOOL = '/ Библиотека / Webserver / build / libtool' mod_wsgi.la / opt / apache2 / modules

/ Library / Webserver / build / libtool –mode = установить cp mod_wsgi.la / opt / apache2 / modules /

cp .libs / mod_wsgi.so /opt/apache2/modules/mod_wsgi.so

cp .libs / mod_wsgi.lai /opt/apache2/modules/mod_wsgi.la

cp .libs / mod_wsgi.a /opt/apache2/modules/mod_wsgi.a

chmod 644 /opt/apache2/modules/mod_wsgi.a

ranlib /opt/apache2/modules/mod_wsgi.a

3 Solutions collect form web for “mod_wsgi на несовпадении версии python на Snow Leopard”

Этот пост старый, но все же появляется в поисках макроса + homebrew + python, поэтому я подумал, что добавлю полезную информацию. У меня была проблема как OP, просто с другим модулем (uwsgi). Я узнал, что тебе не нужно отказываться от доморощенного. Homebrew может, по сути, установить python в качестве рамки; вам просто нужно сказать это, чтобы сделать это:

 % brew uninstall python Uninstalling /usr/local/Cellar/python/2.7.2... % brew install python --universal --framework 

… и все в порядке.

Поскольку по какой-то причине некоторые рамки Python устанавливаются из исходного кода, обычно MacPorts, имеют что-то неправильное с информацией, встроенной в структуру Python, и путь поиска по исполняемому файлу не задан правильно. В результате он в конечном итоге использует структуру Python из / System / Library.

Когда вы запустите 'configure' для mod_wsgi, добавьте дополнительную опцию '–disable-framework'. Например:

 ./configure --with-python=/usr/local/Cellar/python/2.6.4/bin/python --disable-framework 

Это изменит связь между библиотекой / инфраструктурой Python и может решить проблему.

Для получения дополнительной информации см. Исправления ошибок (1) и (2) в:

http://code.google.com/p/modwsgi/wiki/ChangesInVersion0206

Грэм помог мне решить эту проблему в списке рассылки mod_wsgi.

http://groups.google.com/group/modwsgi/browse_thread/thread/4046eaf290a49b1e/ae14888450de39f5#ae14888450de39f5

Вот резюме:

Проблема заключалась в том, что моя установка python была выполнена через Homebrew. Питоны Homebrew не устанавливаются в качестве рамки OR dylib, поэтому его нельзя использовать для встраивания (например, в Apache / mod_wsgi).

Вместо этого я установил python 2.6.4 из источника:

 ./configure --prefix=/usr/local/python-2.6.4 --enable-framework=/usr/local/python-2.6.4/frameworks --enable-universalsdk=/ MACOSX_DEPLOYMENT_TARGET=10.5 --with-universal-archs=3-way make sudo make install 

Мне удалось создать версию python 2.6.4, после чего я смогу создать mod_wsgi с помощью:

 ./configure --with-python=/usr/local/python-2.6.4/bin/python make sudo make install 

Подтвердить:

 otool -L /opt/apache2/modules/ mod_wsgi.so 

/opt/apache2/modules/mod_wsgi.so: /usr/lib/libSystem.B.dylib (версия совместимости 1.0.0, текущая версия 125.0.0) /usr/local/python-2.6.4/frameworks/Python.framework /Versions/2.6/Python (версия совместимости 2.6.0, текущая версия 2.6.0)

показывает, что python теперь использует фреймворк 2.6.4, а не системный. Когда я запускаю apache, я больше не получаю предупреждения о несоответствии версии.

Я снова установил django, psycopg2 и т. Д. В мою новую установку python, и все работает как шарм. В очередной раз благодарим за помощь!

  • Unescape Python Strings из HTTP
  • Флакон не может видеть модули, установленные пиком
  • Ошибка Apache mod_wsgi: Запрещено У вас нет прав доступа / доступа на этом сервере
  • Как установить и настроить mod_wsgi для py3
  • Python & XAMPP для Windows: как?
  • Python: как разобрать тело из сырой электронной почты, учитывая, что у сырой электронной почты нет тега «Body» или что-то еще
  • Ошибка: не удается запустить новый поток
  • mod_wsgi и несколько установок python
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.