Джанго 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
да, я могу импортировать его прямо из оболочки   -  person Cato Johnston    schedule 13.03.2009
comment
Хорошо, а как насчет вашего пути Python в Apache? Возможно, он изменился с общесистемного пути. Чтобы проверить это, вы можете попробовать явно добавить путь для Django, используя PythonPath.   -  person Guðmundur H    schedule 13.03.2009


Ответы (2)


Я могу только догадываться, в чем может быть ваша проблема, но вот две стандартные проверки:

  1. Импортируйте modpython в оболочку из нескольких разных рабочих каталогов.
  2. Смените пользователей (если они у вас есть кроме рута) и повторите шаг 1

Если № 2 выглядит более проблематично, чем оно того стоит, попробуйте очень-очень внимательно проверить разрешения для каждой папки на пути к modpython, чтобы убедиться, что «другой» имеет доступ для чтения на каждом этапе пути. . Если вы переместили 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="alias auth_basic authn_alias authn_anon authn_default authn_file authz_default authz_host authz_owner AUTOINDEX кэш DAV dav_fs dav_lock выкачивает реж disk_cache окр истекает заголовки ext_filter file_cache фильтрации включают данные log_config mem_cache мим ввода-вывода журнала mime_magic переговоров переписывают SetEnvIf speling статус unique_id UserDir usertrack vhost_alias -действий -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