Apache + django pythonpath混淆:ImportError:无法导入设置'mysite.settings'

时间:2010-11-04 04:22:03

标签: python django apache mod-python

我使用python 2.4和django 1.2.2以及apache 2.2.3
写这样的httpd.conf部分:

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

settings.py路径:/ home / usr / www / mysite /
但是当我访问http://localhost/mysite/

时,它不起作用
  

ImportError:无法导入设置   'mysite.settings'

我修改了它,将/ home / usr / www更改为/ var / www并复制/ var / www中的settings.py。 那么为什么apache对待两个目录的方式不同

2 个答案:

答案 0 :(得分:1)

您使用的是SELinux吗?比较

的输出
ls -laZ /var/www

ls -laZ /home/usr/www

有可能apache进程无法访问您的主目录。如果这是问题,可以像

一样解决
chcon -R --reference=/var/www /home/usr/www
chmod og+x /home/usr /home/usr/www

BTW:http://docs.djangoproject.com/en/dev/howto/deployment/modpython/警告说“在Django的未来版本中将不推荐支持mod_python。如果您正在配置新部署,强烈建议您考虑使用mod_wsgi或任何其他受支持的后端。 “

答案 1 :(得分:0)

添加PythonPath "['/home/usr/www/mysite'] + sys.path"