Django MOD_PYTHON ГРЕШКА

Имам django, работещ с mod_python за известно време, но днес получавам следната грешка

MOD_PYTHON ERROR

ProcessId:      4551
Interpreter:    'thatch'

ServerName:     'thatch'
DocumentRoot:   '/var/www/thatch'

URI:            '/'
Location:       '/'
Directory:      None
Filename:       '/var/www/thatch/'
PathInfo:       ''

Phase:          'PythonHandler'
Handler:        'django.core.handlers.modpython'

Traceback (most recent call last):

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1202, in _process_target
    module = import_module(module_name, path=path)

  File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 304, in import_module
    return __import__(module_name, {}, {}, ['*'])

ImportError: No module named django.core.handlers.modpython

Това е конфигурацията на моя виртуален хост

<VirtualHost *:80>
  ServerName  thatch

  DocumentRoot /var/www/thatch

  <Location "/">
    SetHandler python-program
    PythonPath "['/var/www/thatch'] + sys.path"
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE thatch.settings
    PythonOption django.root /var/www/thatch
    PythonDebug On
  </Location>

  <Location "/media">
    SetHandler None
  </Location>

  <LocationMatch "\.(jpg|gif|png|css|js)$">
    SetHandler None
  </LocationMatch>

</VirtualHost>

Някакви идеи защо се случва това?


person Cato Johnston    schedule 13.03.2009    source източник
comment
Можете ли да импортирате django.core.handlers.modpython ръчно от обвивка на Python? Сблъсквал съм се със странни проблеми с импортирането като този, когато някои от модулите ми на python не успеят да импортират, но често получавам по-описателни грешки, опитвайки се да импортирам ръчно.   -  person Guðmundur H    schedule 13.03.2009
comment
да, мога да го импортирам директно от shell-а   -  person Cato Johnston    schedule 13.03.2009
comment
Добре, тогава какво ще кажете за вашия Python път в Apache? Възможно е да се е променил от системния ви път. За да го тествате, можете да опитате да добавите пътя за Django изрично с помощта на PythonPath.   -  person Guðmundur H    schedule 13.03.2009


Отговори (2)


Мога само да предполагам какъв може да е проблемът ви, но ето две стандартни проверки:

  1. Импортирайте modpython в shell от няколко различни работни директории
  2. Променете потребителите (ако имате такива освен root настройка) и повторете стъпка 1

Ако #2 изглежда като повече проблеми, отколкото си струва, тогава опитайте много, много внимателно да проучите разрешенията за всяка папка по пътя към modpython, за да сте сигурни, че „other“ има достъп за четене на всеки етап от пътя . Ако сте преместили django във вашата домашна директория (както аз направих веднъж...не знам защо, но получих същата грешка), това ще бъде проблемът. Или трябва да го преместите обратно в директория, където apache може да чете, или трябва да добавите разрешение за четене за други.

person David Berger    schedule 13.03.2009

В моя случай pytonpath и правата за достъп бяха добре. Тази грешка изчезна след повторно компилиране на python.

Конфигурация:
Gentoo
Django 1.1
Apache:
www-servers/apache-2.2.15 USE="doc ssl suexec threads -debug -ldap (-selinux) -static" APACHE2_MODULES="псевдоним auth_basic authn_alias authn_anon authn_default authn_file authz_default authz_host authz_owner autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime_magic negotiation rewrite setenvif правопис статус уникален _id userdir usertrack vhost_alias -actions -asis -auth_digest -authn_dbd -authn_dbm -authz_dbm -authz_groupfile -authz_user -cern_meta -charset_lite -dbd -dumpio -ident -imagemap -log_forensic -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -substitute -version" APACHE2_MPMS="worker -event -itk -peruser -prefork"
Python 2.6.4

person Mintaka    schedule 29.05.2010