Django MOD_PYTHON ОШИБКА - PullRequest
       11

Django MOD_PYTHON ОШИБКА

0 голосов
/ 13 марта 2009

У меня уже некоторое время работает 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>

Есть идеи, почему это происходит?

Ответы [ 2 ]

1 голос
/ 13 марта 2009

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

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

Если # 2 выглядит больше проблем, чем стоит, то попробуйте очень, очень тщательно проверить разрешения для каждой папки на пути к modpython, чтобы убедиться, что "другие" имеют доступ на чтение на каждом этапе путь. Если вы переместили django в свой домашний каталог (как я однажды сделал ... не знаю почему, но получили ту же ошибку), это будет проблемой. Вам нужно либо переместить его обратно в каталог, где apache может читать, либо добавить разрешение на чтение для других.

0 голосов
/ 30 мая 2010

В моем случае pytonpath и права доступа были в порядке. Эта ошибка исчезла после перекомпиляции Python.

Конфигурация:
Gentoo
Джанго 1.1
Apache:
WWW-серверы / Apache-2.2.15 USE = "док SSL Suexec нитей -debug -ldap (-selinux) -static" APACHE2_MODULES = "псевдоним auth_basic authn_alias authn_anon authn_default authn_file authz_default authz_host authz_owner AUTOINDEX кэш ДАВ dav_fs dav_lock выкачать реж disk_cache ENV истекает ext_filter Заголовки фильтра file_cache включают в себя информацию log_config logio mem_cache mime mime_magic согласование переписать состояние написания setenvif unique_id userdir usertrack vhost_alias -actions -asis -auth_digest -authn_dbd -authn_dbm -authz_dbm -authz_uthic -_a_image_serge_file_service proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -substitute -version "APACHE2_MPMS =" рабочий-событие -itk -peruser -prefork "
Python 2.6.4

...