Я устанавливаю рабочую версию живого сервера в Webfaction, запускаю приложения Django в виртуальной серверной среде Apache (работающей без ошибок) на моей локальной машине - XP, запускаю XAMPP Lite с Python 2.6 - что я могу фиксировать изменения через Git.
XAMPP работает и работает нормально с Python, и сервер отлично запускается с загруженным модулем WSGI. Проблема в том, что когда я устанавливаю свои пути Python, они задаются наполовину в формате 'nix (с /) и наполовину в Windows (с обратной косой чертой).
Вот ошибка Apache на локальной машине, показывающая поврежденные пути python:
[Fri Oct 08 14:52:53 2010] [error] [client 127.0.0.1] mod_wsgi (pid=1436): Exception occurred processing WSGI script 'C:/SERVER/Python26/Lib/site-packages/website-cms/webapps/django/dev.wsgi'.
[Fri Oct 08 14:52:53 2010] [error] [client 127.0.0.1] Traceback (most recent call last):
[Fri Oct 08 14:52:53 2010] [error] [client 127.0.0.1] File "C:/SERVER/Python26/Lib/site-packages/website-cms/webapps/django/lib/python2.5\\django\\core\\handlers\\wsgi.py", line 230, in __call__
[Fri Oct 08 14:52:53 2010] [error] [client 127.0.0.1] self.load_middleware()
[Fri Oct 08 14:52:53 2010] [error] [client 127.0.0.1] File "C:/SERVER/Python26/Lib/site-packages/website-cms/webapps/django/lib/python2.5\\django\\core\\handlers\\base.py", line 42, in load_middleware
[Fri Oct 08 14:52:53 2010] [error] [client 127.0.0.1] raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
[Fri Oct 08 14:52:53 2010] [error] [client 127.0.0.1] ImproperlyConfigured: Error importing middleware cms.middleware.multilingual: "No module named cms.middleware.multilingual"
И содержимое файла .wsgi:
import os, sys
sys.path.append('C:/SERVER/Python26/')
sys.path.append('C:/SERVER/Python26/Lib/site-packages/website-cms/webapps/django')
sys.path.append('C:/SERVER/Python26/Lib/site-packages/website-cms/webapps/django/lib/python2.5')
from django.core.handlers.wsgi import WSGIHandler
#Add the path to Django itself
os.environ['DJANGO_SETTINGS_MODULE'] = 'website.settings'
application = WSGIHandler()
Apache httpd.conf является значением по умолчанию для XAMPP (а не виртуальным экземпляром), для загрузки модуля wsgi добавлено следующее
LoadModule wsgi_module modules/mod_wsgi-win32-ap22py26-3.3.so
&, чтобы указать на файл wsgi:
WSGIScriptAlias / C:/SERVER/Python26/Lib/site-packages/website-cms/webapps/django/dev.wsgi
Я знаю, что сервер XAMPP использует Python2.6 (я вынужден использовать TortoiseGIT), и производство идет на 2.5 (поддерживается веб-хостингом), но это не похоже на виновника - я бы по-прежнему ожидайте, что сможете установить правильный путь, по крайней мере!
Приветствуются все предложения по созданию пути Python для игры в мяч!