Ошибка CentOS с mod_wsgi: не удается найти -lpython3.2

1592
cwallenpoole

Я пытался установить mod_wsgi, настроенный для Python 3.2, на компьютере CentOS, и я продолжаю сталкиваться с ошибкой:

/ usr / bin / ld: не удается найти -lpython3.2

Насколько я могу судить, это вызвано отсутствием libpython3.2.soили эквивалентом, но я не могу понять, как создать этот файл.

Некоторые соответствующие данные:

  1. Установка Python 3.2, загружена с python.org как tar.bz2
  2. md5sumИз Python-3.2.tar.bz2матчей один на Python.org
  3. Эта проблема возникает как с версией mod_wsgi из репозитория hg, так и с mod_wsgi-3.3.tar.gz

(Я понимаю, что это также может быть вопрос о сбое сервера, но этот форум казался более интуитивным).

(Вывод ниже для справки)

[root@<>mod_wsgi-3.3]# ./configure PYTHON=/usr/local/bin/python3.2 checking for apxs2... no checking for apxs... /usr/sbin/apxs checking Apache version... 2.2.3 configure: creating ./config.status config.status: creating Makefile [root@<> mod_wsgi-3.3]# make ... (I will include this if requested, but it makes it easier to  read if this is removed) mod_wsgi.c:7154: warning: 'wsgi_set_py3k_warning_flag' defined but not used mod_wsgi.c:7856: warning: 'wsgi_set_user_authoritative' defined but not used mod_wsgi.c:14414: warning: 'wsgi_hook_check_user_id' defined but not used /usr/lib/apr-1/build/libtool --silent --mode=link gcc -o mod_wsgi.la -rpath /usr/lib/httpd/modules -module -avoid-version mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python3.2/config -lpython3.2 -lpthread -ldl -lutil -lm /usr/bin/ld: cannot find -lpython3.2 collect2: ld returned 1 exit status apxs:Error: Command failed with rc=65536 . make: *** [mod_wsgi.la] Error 1 [root@<> mod_wsgi-3.3]# 
0
Можете ли вы перечислить файлы в `/ usr / local / lib / python3.2 / config` в своем посте? John T 12 лет назад 0
Кажется, его там нет ... Это директива установки, которую я пропустил? cwallenpoole 12 лет назад 0
Makefile ищет конфигурацию в этом каталоге для компоновщика (`ld`). Вы можете изменить make-файл так, чтобы он указывал на вашу установку Python, или переустановите python в стандартном каталоге. John T 12 лет назад 0
Как мне узнать, как это сделать? (Я просто использую ./configure --enable-shared; make; make install для установки на Python) cwallenpoole 12 лет назад 0
Какие фактические аргументы 'configure' вы указали при сборке Python? Для mod_wsgi, чтобы указать, где установлен Python, вы должны использовать опцию --with-python и не устанавливать переменную PYTHON при запуске configure. Graham Dumpleton 12 лет назад 0
Я собрал python с помощью `./configure --enable-shared`; `Make`; `сделать установку` cwallenpoole 12 лет назад 0
Что касается PYTHON = vs. --with-python =, кажется (на основе файла конфигурации), что оба выполняют одно и то же. В любом случае, ни один не работает. cwallenpoole 12 лет назад 0

1 ответ на вопрос

0
Graham Dumpleton

Если вы создали Python 3.2 с:

./configure --enable-shared; make; make install 

как вы говорите, тогда это фактически установилось бы в / usr, а не в / usr / local. Таким образом, может показаться, что у вас может быть две установки Python для 3.2, и ваши настройки PATH или PYTHON означают, что вы выбираете тот, который находится в / usr / local, а не тот, который был установлен в / usr на основе ваших настроек конфигурации для Python. Определите, сколько у вас на самом деле установок Python, где и какие версии. Также убедитесь, что когда вы перестраиваете исходный код для Python или mod_wsgi, вы делаете:

make distclean 

между сборками, чтобы убедиться, что у вас ничего не осталось от предыдущих сборок из предыдущей конфигурации.

Обратите внимание, что предпочтительно отредактировать исходный вопрос, чтобы добавить дополнительную информацию, а не только добавить ее в комментарии, где ее трудно найти.

Похожие вопросы