Назад | Перейти на главную страницу

Apache показывает «Несоответствие версии Python» с помощью mod_wsgi

Я пытаюсь заставить web.py работать.

Я скомпилировал mod_wsgi для использования python2.6 и правильно настроил свой виртуальный хост (по крайней мере, я почти уверен, что это так!). Приложение hello, world продолжает отображаться как 404. Я изменил уровень логирования Apache на info. и вижу следующее:

[Wed Sep 28 15:41:12 2011] [info] mod_wsgi (pid=25969): Attach interpreter ''.
[Wed Sep 28 15:42:55 2011] [info] mod_wsgi (pid=25969): Create interpreter 'clearpoint.turnleftllc.com|/budgetcalculator'.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Destroying interpreters.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Destroy interpreter 'clearpoint.turnleftllc.com|/budgetcalculator'.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Cleanup interpreter ''.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Terminating Python.
[Wed Sep 28 15:45:33 2011] [error] Exception KeyError: KeyError(-1216178416,) in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Python has shutdown.
Fatal Python error: Interpreter not initialized (version mismatch?)

Что касается KeyError, я действительно не уверен, откуда это. Я протестировал приложение из командной строки (python26 code.py), и оно выполняется без ошибок. Фактически, это не дает никакого вывода.

На всякий случай вот моя конфигурация VirtualHost, а также код приложения:

Код Python (взят непосредственно с сайта web.py):

#!/usr/bin/python26
import web

urls = (
        '/.*', 'index'
        )

class index:
    def GET(self):
        return "Hello, world!"


app = web.application(urls,globals()).wsgifunc()

VirtualHost:

<VirtualHost xxx.xxx.xxx.xxx:80>
        ServerAdmin "tom@turnleftllc.com"
        ServerName clearpoint.turnleftllc.com
        ServerAlias clearpoint
        ErrorLog logs/clearpoint_error_log

        DocumentRoot /home/turnleftllc/public_html/cpccs
        WSGIScriptAlias /budgetCalculator /home/turnleftllc/public_html/cpccs/apps/code.py
        Alias /budgetCalculator/static /home/turnleftllc/public_html/cpccs/apps/static
        AddType text/html .py
        <Directory /home/turnleftllc/public_html/cpccs>
                Order allow,deny
                Allow from all
                AllowOverride All
        </Directory>
        <Directory /home/turnleftllc/public_html/cpccs/apps>
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

Я использую CentOS5, по умолчанию - python2.4. Я удалил и перекомпилировал mod_wsgi для python2.6 (как вы можете видеть в выходных данных, он определенно инициализирует 2.6).

Любая помощь будет принята с благодарностью!

Убедитесь, что вы все еще не загружаете mod_python в тот же Apache.

Прочтите следующее и подтвердите свою установку.

http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Shared_Library http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Installation_In_Use

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

Сообщение KeyError связано с тем, что вы используете старую версию mod_wsgi, а не последнюю, поэтому, если вы создавали из исходного кода, убедитесь, что вы использовали mod_wsgi 3.3.