mod_wsgi и множественные установки python - PullRequest
17 голосов
/ 23 июня 2011

Это своего рода продолжение этого вопроса, но оно отклонилось, поэтому я начал новый.Я хотел бы использовать Python 2.5 вместо OS X по умолчанию 2.6.Я настроил это для своего терминала и еще много чего, но всякий раз, когда запускается apache, он выдает следующее сообщение об ошибке:

[Thu Jun 23 00:01:42 2011] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Compiled for Python/2.5.4.
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Runtime using Python/2.6.1.
[Thu Jun 23 00:01:42 2011] [notice] Digest: generating secret for digest authentication ...
[Thu Jun 23 00:01:42 2011] [notice] Digest: done
[Thu Jun 23 00:01:42 2011] [notice] Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8l DAV/2 mod_wsgi/3.3 Python/2.6.1 configured -- resuming normal operations

Я устанавливаю WSGIPythonPath в соответствии с тем, что sys.path дает мне в оболочке python:

WSGIPythonPath /System/Library/Frameworks/Python.framework/Versions/2.5

Все равно не повезло.Идеи?

Ответы [ 3 ]

11 голосов
/ 23 июня 2011

Вы должны использовать следующие директивы в зависимости от того, какую версию mod_wsgi вы используете

Для mod_wsgi 1.x:

WSGIPythonExecutable /path/to/python/2.5/exe

Для mod_wsgi 2.x:

WSGIPythonHome /path/to/python/2.5/exe/directory

WSGIPythonPath просто предназначен для добавления ваших собственных библиотек в путь Python в контексте WSGI.

Ссылка на документацию: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIPythonExecutable

4 голосов
/ 23 июня 2011
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Compiled for Python/2.5.4.
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Runtime using Python/2.6.1.

Эти две строки сообщают вам, что mod_wsgi был скомпилирован для неправильной версии Python, поэтому вам нужно перекомпилировать его с правильной директивой --with-python.Смотри http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide#Configuring_The_Source_Code.

3 голосов
/ 25 марта 2016

Вот как я решил подобную проблему на CentOS 6.7, поскольку по умолчанию был Python 2.6, мне нужно было установить Python 2.7 для поддержки веб-сайта Django.

Сначала я установил Python 2.7 с yum:

yum install python27 python27-python-devel python27-MySQL-python

путь установки Python 2.7: /opt/rh/python27/root/usr/bin/python

Затем нам нужно пересобрать mod_wsgi с новыми путями, и вот команды:

wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz
tar -xzf 4.4.21.tar.gz
cd mod_wsgi-4.4.21
./configure --with-python=/opt/rh/python27/root/usr/bin/python LDFLAGS="-R/opt/rh/python27/root/usr/lib64"
make  && make install
service httpd restart
tail /var/log/httpd/error_log

Ключевым моментом здесь является то, что mod_wsgi должен найти libpython2.7.so в /opt/rh/python27/root/usr/lib64 в моей установке Python 2.7.

Еще одним важным замечанием в моей установке было то, что мне пришлось установить python27-MySQL-python с yum, в противном случае я получил ошибку при установке с pip, как показано ниже:

pip install MySQL-python 
...