s4f 06.03.2012 18:19
Есть вопрос! — python + mod_wsgi + httpd
Дано: Centos, Python + WSGI + HTTPD.Ошибка: No module named base...
В VirtualHost добавил только:
...
WSGIScriptAlias /test /var/www/html/mysite.net/wsgi/hello_app.wsgi
...
WSGIScriptAlias /test /var/www/html/mysite.net/wsgi/hello_app.wsgi
...
простейшее приложение работает http://mysite.net/test
Попытался запустить второй пример:
Но не работает.
Ошибка в /var/log/httpd/error_log(LogLevel info):
[Tue Mar 06 17:57:52 2012] [error] [client xxx.xxx.xxx.xxx] import web.wsgi.base, time
[Tue Mar 06 17:57:52 2012] [error] [client xxx.xxx.xxx.xxx] ImportError: No module named base
[Tue Mar 06 17:57:52 2012] [error] [client xxx.xxx.xxx.xxx] ImportError: No module named base
Понятно, что чего-то не хватает. Но чего? Установил кучу пакетов:
Подскажите, плиз.
Вообще ниразу не питонщик, но, скорее всего, ImportError говорит о невозможности подгрузить сам модуль, а не использовать его функции, попробуй...
Если дает ту же ошибку импорта, то проблема в самом пайтоне и его PythonPath, если нет - значит проблема в путях для самого модуля WSGI (скажем, у mod_wsgi>2 это директива WSGIPythonHome).
Скажем, запускаясь из изолированного окружения эта директива нужна обязательно, иначе пойдут такие вот ошибки импорта.
Кроме того, может быть проблема в несовместимости версий пайтона и модуля wsgi, мне пришлось из-за этого пересобирать 2 версии mod_wsgi и пайтона.
Для mod_wsgi можно проверить по тому, какой файл подгружается из /etc/apache2/mods-available/wsgi.load
1 |
|
Если дает ту же ошибку импорта, то проблема в самом пайтоне и его PythonPath, если нет - значит проблема в путях для самого модуля WSGI (скажем, у mod_wsgi>2 это директива WSGIPythonHome).
Скажем, запускаясь из изолированного окружения эта директива нужна обязательно, иначе пойдут такие вот ошибки импорта.
Кроме того, может быть проблема в несовместимости версий пайтона и модуля wsgi, мне пришлось из-за этого пересобирать 2 версии mod_wsgi и пайтона.
Для mod_wsgi можно проверить по тому, какой файл подгружается из /etc/apache2/mods-available/wsgi.load
class Application(web.wsgi.base.BaseApplication):
Надо звать местных питонщиков - пусть разбираются.