Django MOD_PYTHON错误

时间:2009-03-13 07:28:19

标签: 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>

为什么会发生这种情况?

2 个答案:

答案 0 :(得分:1)

我只能猜出你的问题可能是什么,但这里有两个标准检查:

  1. 从shell中导入modpython,来自几个不同的工作目录
  2. 更改用户(如果除根设置之外还有其他用户)并重复步骤1
  3. 如果#2看起来比它的价值更麻烦,那么尝试非常,非常仔细地检查modpython路径中每个文件夹的权限,以确保“其他”在每个阶段都具有读取权限一路上。如果你已经将django移动到你的主目录中(就像我曾经做过的那样......不确定为什么,但得到了同样的错误)那就是问题所在。您需要将其移回到apache可以读取的目录中,或者您需要为其他目录添加读取权限。

答案 1 :(得分:0)

在我的情况下,pytonpath和访问权限都可以。 重新编译python后,此错误消失。

配置:
Gentoo的
Django 1.1
阿帕奇:
 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 cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache过滤器头包括info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_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