在Apache mod_python上部署django app

时间:2009-02-01 04:35:41

标签: django apache mod-python

我已经在django制作了一个名为'kazbah'的网站,我正在尝试部署。

kazbah网站的所有代码都在/ home / git / DjangoProjects / kazbah中,我的httpd.conf看起来像:

<Location "/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE kazbah.settings
    PythonDebug On
    PythonPath "['/home/git/DjangoProjects'] + sys.path"
</Location> 

我收到以下错误:

ImportError:无法导入设置'kazbah.settings'(是否在sys.path上?是否有语法错误?):没有名为kazbah.settings的模块

知道为什么这个菜鸟会失败?

5 个答案:

答案 0 :(得分:2)

对于在/var/www/bbb(称为“bbb”)下的项目,我在配置文件中设置了以下内容:

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

答案 1 :(得分:2)

我已经看过几次了。每次,都是因为我错误地设置了这一行:

SetEnv DJANGO_SETTINGS_MODULE kazbah.settings

即使它看起来正确,Django(实际上是python)正在寻找一个我想要的文件夹。尝试调整它,将其更改为:

SetEnv DJANGO_SETTINGS_MODULE settings

另外,你可以在这里调整:

PythonPath "['/home/git/DjangoProjects'] + sys.path"

可能需要将其设置为:

PythonPath "['/home/git/DjangoProjects/kazbah'] + sys.path"

或类似的东西。没有看到您的实际文件夹设置,很难确切地知道。 :)

答案 2 :(得分:1)

路易斯,你的配置看起来和我在切换到mod_wsgi之前使用的配置完全一样,所以一定有别的错误。也许你错过了/ home / git / DjangoProjects / kazbah中的__init__.py文件?

答案 3 :(得分:0)

我很确定你可以做sys.path事情 - 它在django文档中。

当我尝试另一个教程时(我认为这有点过时),我可能会查看django doc http://docs.djangoproject.com/en/dev/howto/deployment/modpython/ - http://www.jeffbaier.com/2007/07/26/installing-django-on-an-ubuntu-linux-server/

答案 4 :(得分:0)

好的,也许您的设置文件中存在语法错误。

试试这个:

$ cd /home/git/DjangoProjects/kazbah
$ python
>>> import settings

如果出现任何错误,以这种方式执行此操作将为您提供更好的错误消息。