开发者

Django ImportError: Could not import settings 'settings' - No module named csrf

开发者 https://www.devze.com 2023-01-28 19:11 出处:网络
I am just starting to fiddle around with django. First I made a small app on my windows machine and verified it worked fine

I am just starting to fiddle around with django. First I made a small app on my windows machine and verified it worked fine Then, I zipped the entire project, and opened the zip on a linux machine. The linux machine was installed with mod_wsgi and django 1.1.1, of course.

I crea开发者_Go百科ted the following dirs:

  • /usr/local/bin/ROOT - contains only one file, django.wsgi
  • /usr/local/bin/ROOT/myapp - root dir of django app

Per the instructions here, I added to 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>

Now per the instructions here I put in /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()

If it is of any importance: there is nothing set on PYTHOHPATH before the application starts.

After that I did a graceful restart to apache, and went to server/myapp. I got a 500 error. Lookin in the log I see:

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

What am I doing wrong? all other threads I found about this always either end up with a conclusion that it's an old version of django (but mine's 1.1.1) or that there are several apps running, but I have only one...

Help?


"django.middleware.csrf" is the package in Django 1.2.x

For Django 1.1.x CSRF settings read the appropriate docs Here

The package in 1.1.x was "django.contrib.csrf.middleware.CsrfMiddleware"


1.1.1 is an old version of Django (the current version is 1.2.3), and that's almost certainly the cause of your problem. There is no django.middleware.csrf in 1.1.1.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号