Я скомпилировал python 2.7.8 с:
mkdir -p /usr/local/python2p7/lib
./configure --prefix=/usr/local/python2p7 --with-threads --enable-shared LDFLAGS="-Wl,-rpath /usr/local/python2p7/lib"
make
make install altinstall
Я использую LDFLAGS, поэтому эта установка не конфликтует с CentOS 7, встроенным в python 2.7.5.
Компилирую modwsgi 4.2.6:
./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/local/python2p7/bin/python LDFLAGS="-L/usr/local/python2p7/lib"
make
make install
Если я бегу:
ldd /usr/local/apache/modules/mod_wsgi.so
я получил
...
libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f648d9a0000)
...
Как заставить мод wsgi использовать /usr/local/python2p7/lib/libpython2.7.so.1.0?
*******Решение*******
С помощью Грэма Дамплтона:
Чтобы скомпилировать modwsgi:
export LD_RUN_PATH=/usr/local/python2p7/lib
./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/local/python2p7/bin/python
make
make install
unset LD_RUN_PATH
В наборе конфигурации apache
WSGIPythonHome /usr/local/python2p7
Я изначально установил его в «/ usr / local / python2p7 / bin» и получил ошибку «ImportError: Нет модуля с именем сайта».
Это описано в документации mod_wsgi. Видеть:
Вам нужно будет установить переменную среды LD_RUN_PATH в соответствующий каталог библиотеки при компиляции mod_wsgi, чтобы убедиться, что он использует правильную разделяемую библиотеку Python.
Читайте также:
в случае, если во время выполнения он все еще выбирает неправильные файлы времени выполнения. В этом случае вам также необходимо установить WSGIPythonHome.
Что касается компиляции из исходного кода, другая причина заключается в том, что CentOS по-прежнему поставляет старый mod_wsgi.
Вы можете даже подумать об использовании устанавливаемого pip mod_wsgi вместо того, что вы делаете сейчас. Видеть: