Django ImportError:无法导入设置'settings' - 没有名为csrf的模块

时间:2010-12-05 18:48:59

标签: django importerror django-settings

我刚刚开始玩django。首先,我在我的Windows机器上制作了一个小应用程序并验证它工作正常 然后,我压缩了整个项目,并在linux机器上打开了zip。 当然,linux机器安装了mod_wsgi和django 1.1.1。

我创建了以下目录:

  • /usr/local/bin/ROOT - 仅包含一个文件django.wsgi
  • /usr/local/bin/ROOT/myapp - django app的根目录

根据说明here,我添加到httpd.conf

<VirtualHost *:80>

    ServerName server
    ServerAlias server
    ServerAdmin webmaster@example.com


    WSGIScriptAlias /myapp /usr/local/bin/ROOT/django.wsgi

    <Directory /usr/local/bin/ROOT/>
    Order allow,deny
    Allow from all
    </Directory>

</VirtualHost>

现在按照here的说明我放入了/usr/local/bin/ROOT/django.wsgi

import os
import sys
path = '/usr/local/bin/ROOT'
if path not in sys.path:
    sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

如果它具有任何重要性:在应用程序启动之前PYTHOHPATH上没有设置任何内容。

之后我对apache进行了优雅的重启,然后转到了server / myapp。我收到了500错误。 看看我看到的日志:

[Sun Dec 05 12:24:17 2010] [error] [client XXXX] ImproperlyConfigured: Error importing middleware django.middleware.csrf: "No module named csrf"

我做错了什么?我发现的所有其他线程总是得出结论,它是django的旧版本(但是我的1.1.1版)或者有几个应用程序正在运行,但我只有一个......

帮助?

2 个答案:

答案 0 :(得分:1)

“django.middleware.csrf”是Django 1.2.x中的软件包

对于Django 1.1.x CSRF设置,请阅读相应的文档Here

1.1.x中的包是“django.contrib.csrf.middleware.CsrfMiddleware”

答案 1 :(得分:1)

1.1.1 旧版本的Django(当前版本是1.2.3),这几乎肯定是导致问题的原因。 1.1.1中没有django.middleware.csrf